Browse Source

订单-库存统计-仓库维度

zhangjinxing 3 years ago
parent
commit
360f7b7c2e

+ 1 - 1
src/apis/service/stock/dataWeido/index.js

@@ -7,7 +7,7 @@ export default {
   // 删除
   delete: (data, params) => http(api + "delete", data, "post", params),
   // 分页查询
-  list: (data, params) => http(api + "list", data, "post", params),
+  list: (data, params) => http(api + "getstockwsm", data, "post", params),
   // 详情
   detail: (data, params) => http(api + "detail", data, "post", params),
   // 更新

+ 1 - 1
src/apis/service/stock/productWeido/index.js

@@ -7,7 +7,7 @@ export default {
   // 删除
   delete: (data, params) => http(api + "delete", data, "post", params),
   // 分页查询
-  list: (data, params) => http(api + "list", data, "post", params),
+  list: (data, params) => http(api + "getstockgod", data, "post", params),
   // 详情
   detail: (data, params) => http(api + "detail", data, "post", params),
   // 更新

+ 3 - 1
src/apis/service/stock/survey/index.js

@@ -7,12 +7,14 @@ export default {
   // 删除
   delete: (data, params) => http(api + "delete", data, "post", params),
   // 分页查询
-  list: (data, params) => http(api + "goodstock", data, "post", params),
+  list: (data, params) => http(api + "list", data, "post", params),
   // 详情
   detail: (data, params) => http(api + "detail", data, "post", params),
   // 更新
   update: (data, params) => http(api + "update", data, "post", params),
   // 修改状态
   status: (data, params) => http(api + "accountstatus", data, "post", params),
+  // 库存数据
+  stockLisk:(data, params) => http(api + "goodstock", data, "post", params)
 };
    

+ 1 - 2
src/views/purchaseIn/storeManage/addEdit.vue

@@ -77,7 +77,7 @@
           <el-button @click="showModelThis = false">{{
             isDetail ? "关 闭" : "取 消"
           }}</el-button>
-          id:{{ id }} isDetail:{{ isDetail }}
+          id:{{ id }} isDetail:{{ isDetail }}1212
         </el-col>
       </el-row>
     </el-card>
@@ -269,7 +269,6 @@ export default {
     },
 
     async submitForm() {
-
       await this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {
           this.loading = true;

+ 1 - 0
src/views/purchaseIn/storeManage/addModel.vue

@@ -46,6 +46,7 @@ export default {
   methods: {
     closeModel() {
       this.showModelThis = false;
+      this.$emit("closeModel");
     },
   },
 };

+ 8 - 19
src/views/purchaseIn/storeManage/components/addEdit.vue

@@ -82,15 +82,15 @@
           <el-button @click="closeModel">{{
             isDetail ? "关 闭" : "取 消"
           }}</el-button>
-          id:{{ id }} isDetail:{{ isDetail }}showModel::{{ showModelThis }}
+          {{ sitem }}
         </el-col>
       </el-row>
     </el-form>
-    <search-good-modal
+    <search-stock-good-modal
       :once="true"
       :show-model="showGoodsModel"
       @cancel="showGoodsModel = false"
-      @resultList="addGoodsRes"
+      @searchChange="addGoodsRes"
     />
   </div>
 </template>
@@ -99,7 +99,7 @@ import resToken from "@/mixins/resToken";
 import asyncRequest from "@/apis/service/purchaseIn/storeManage";
 export default {
   name: "storeManage",
-  props: ["showModel", "id", "isDetail"],
+  props: ["showModel", "id", "isDetail", "sitem"],
   mixins: [resToken],
   data() {
     return {
@@ -215,7 +215,7 @@ export default {
     // 执行点击商品名称的抛出事件
     addGoodsRes(e) {
       console.log(e);
-      let { good_code, good_name, type_code } = e[0];
+      let { good_code, type_code, good_name } = e[0];
       this.ruleForm.goods_name = good_name;
       this.ruleForm.good_type_code = type_code;
       this.ruleForm.good_code = good_code;
@@ -244,6 +244,7 @@ export default {
         if (this.isDetail) {
           this.rulesThis = {};
         } else {
+          
           this.rulesThis = this.rules;
         }
         await this.resetForm();
@@ -263,35 +264,23 @@ export default {
             good_code: "",
             good_type_code: "",
             goods_name: "", //商品名称
-            goods_num: "100", //商品数量
+            goods_num: "", //商品数量
             last_go_stock: "", //最晚入库时间
-            stock_in_rule: "WSMcmpk211008104949", //入库仓库
+            stock_in_rule: "", //入库仓库
           };
-          if (this.id === "add" || this.isDetail) {
-            // this.rules.username[0].required = false;
-            console.log("当前是add或者 this.isDetail是true");
-          }
         }
       });
     },
 
     async submitForm() {
-
       await this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {
           this.loading = true;
-          // if
-          console.log(this.ruleForm);
-          // const { username, name, mobile, email, role_id, status } = JSON.parse(
-          //
-          // );
-
           const {
             stock_code, //仓库编码
             good_code,
             good_type_code,
             last_go_stock,
-            stock_in_rule,
             goods_num,
           } = this.ruleForm;
           const model = {

+ 52 - 84
src/views/purchaseIn/storeManage/detail.vue

@@ -3,7 +3,7 @@
     <div
       v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
     >
-      <add-edit :id="$route.query.id" />
+      <add-edit :sitem="ruleForm" />
     </div>
     <div v-else>
       <no-auth></no-auth>
@@ -14,12 +14,13 @@
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
 import statusList from "@/assets/js/statusList";
-import asyncRequest from "@/apis/service/stock/check/detail";
+import asyncRequest from "@/apis/service/purchaseIn/storeManage";
+
 import addEdit from "./components/addEdit";
 import { mapGetters } from "vuex";
 
 export default {
-  name: "checkDetail",
+  name: "storeManageFlow",
   mixins: [mixinPage, resToken],
   components: {
     addEdit,
@@ -29,7 +30,7 @@ export default {
     powers() {
       let tran =
         this.$store.getters.btnList.find(
-          (item) => item.menu_route == "checkDetail"
+          (item) => item.menu_route == "storeManageFlow"
         ) || {};
       if (tran && tran.action && tran.action.length > 0) {
         return tran.action;
@@ -40,7 +41,7 @@ export default {
   },
   data() {
     return {
-      sitem: null,
+      id: "", //路由传来的id
       // 状态
       statusOptions: [
         { id: "0", label: "禁用" },
@@ -52,85 +53,66 @@ export default {
       isDetail: false,
       modelId: 0,
       parmValue: {
-        name: "", // 业务员名字
-        username: "", // 账号
-        status: "", //
         page: 1, // 页码
         size: 15, // 每页显示条数
       },
-      tableData: [],
-      passwordModel: false,
-      passwordModelId: 0,
-      isPasswordDetail: false,
-      // 表格 - 数据
-      tableData: [],
-      // 表格 - 参数
-      table: {
-        stripe: true,
-        border: true,
-        _defaultHeader_: ["setcol"],
-      },
-      // 表格 - 分页
-      pageInfo: {
-        size: 15,
-        curr: 1,
-        total: 0,
-      },
-      // 表格 - 列参数
-      columns: [
-        {
-          prop: "nickname",
-          label: "真实姓名",
-        },
-        {
-          prop: "role_name",
-          label: "角色名称",
-        },
-        {
-          prop: "mobile",
-          label: "联系电话",
-        },
-        {
-          prop: "email",
-          label: "邮箱",
-        },
-        {
-          prop: "status",
-          label: "状态",
-          _slot_: "status",
-          width: "80px",
-        },
-        {
-          prop: "addtime",
-          label: "创建时间",
-          sortable: true,
-        },
-        {
-          prop: "",
-          label: "操作",
-          fixed: "right",
-          _noset_: true,
-          _slot_: "operation",
-        },
-      ],
     };
   },
   mounted() {
-    console.log(this.$route.query.id);
-
-    // this.searchList();
+    this.id = this.$route.query.id;
+    this.searchList();
   },
 
   methods: {
+    async searchList() {
+      this.loading = true;
+      const res = await asyncRequest.detail({ id: this.id });
+      if (res && res.code === 0 && res.data) {
+        console.log(res);
+        let {
+          good_name, //商品名
+          good_num, //采购数量
+          lasttime, //最晚入库时间
+          wsm_code, //仓库code
+          wsm_name, //仓库名
+
+          bk_code, //备库code
+          apply_name, //申请人
+          good_code, //商品code
+          good_type_code, //商品属性code
+
+          status, //当前状态
+        } = res.data;
+        this.ruleForm = {
+          bk_code, //备库code
+          apply_name, //申请人
+          good_code, //商品code
+          good_name, //商品名
+          good_num, //备库数量
+          good_type_code, //商品属性code
+          wsm_code, //仓库code
+          lasttime, //最晚入库时间
+          wsm_name, //仓库名
+          status, //当前状态
+        };
+        console.log(this.ruleForm);
+        // this.tableData = res.data.list;
+        // this.pageInfo.total = Number(res.data.count);
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
+    },
+
     restSearch() {
       this.parmValue = {
-        name: "", // 业务员名字
-        username: "", // 账号
-        status: "", //
         page: 1, // 页码
         size: 15, // 每页显示条数
       };
-       // 表格 - 分页
+      // 表格 - 分页
       this.pageInfo = {
         size: 15,
         curr: 1,
@@ -173,20 +155,6 @@ export default {
           console.log("取消");
         });
     },
-    async searchList() {
-      this.loading = true;
-      const res = await asyncRequest.list(this.parmValue);
-      if (res && res.code === 0 && res.data) {
-        this.tableData = res.data.list;
-        this.pageInfo.total = Number(res.data.count);
-      } else if (res && res.code >= 100 && res.code <= 104) {
-        await this.logout();
-      } else {
-        this.tableData = [];
-        this.pageInfo.total = 0;
-      }
-      this.loading = false;
-    },
 
     async statusConfirm(id, status) {
       let str = status === "1" ? "禁用" : "启用";

+ 22 - 4
src/views/purchaseIn/storeManage/index.vue

@@ -131,7 +131,7 @@
         :show-model="showModel"
         :is-detail="isDetail"
         @refresh="searchList"
-        @cancel="showModel = false"
+        @closeModel="searchList"
       />
     </div>
     <div v-else>
@@ -169,8 +169,6 @@ export default {
   },
   data() {
     return {
-      // sitem: null,
-      // 状态
       statusOptions: [
         { id: "0", label: "后端未定" },
         { id: "1", label: "后端未定义" },
@@ -182,6 +180,9 @@ export default {
       isDetail: false,
       modelId: 0,
       parmValue: {
+        startTime: "", //开始日期
+        endTime: "", //结束日期
+        good_name: "", //商品名称
         bk_code: "", //备库编号
         page: 1, // 页码
         size: 15, // 每页显示条数
@@ -258,6 +259,16 @@ export default {
     // 选择时间操作
     handleTime(e) {
       console.log(e);
+      if (e && e.startTime && e.endTime) {
+        this.parmValue.startTime = e.startTime;
+        this.parmValue.endTime = e.endTime;
+      } else {
+        this.parmValue.startTime = "";
+        this.parmValue.endTime = "";
+      }
+      if (this.parmValue.startTime != "" && this.parmValue.endTime) {
+        this.searchList();
+      }
     },
     // 点击详情操作
     gotoDetail(id) {
@@ -319,7 +330,14 @@ export default {
     },
     async searchList() {
       this.loading = true;
-      const res = await asyncRequest.list(this.parmValue);
+      let { startTime, endTime, page, size } = this.parmValue;
+      let model = {
+        startTime,
+        endTime,
+        page,
+        size,
+      };
+      const res = await asyncRequest.list(model);
       if (res && res.code === 0 && res.data) {
         this.tableData = res.data.list;
         this.pageInfo.total = Number(res.data.count);

+ 2 - 50
src/views/purchaseIn/storeManageFlow/components/newSetStock.vue

@@ -233,21 +233,6 @@ export default {
         wsm_code: "", //仓库code
         lasttime: "", //最晚入库时间
         status: "", //当前状态
-
-        // supplier_code: [], //供应商名称
-        // good_name: "", //商品名称
-
-        // stock_in_rule: "", //入库仓库
-        // goods_num_limit: "", //采购数量上限
-        // expect_go_time: "", //预计入库时间
-        // stock_go_rule: "", //出库仓库
-        // remark: "", //备注
-        // bk_code: "", //备库code
-        // apply_name: "", //申请人
-
-        // good_type_code: "", //商品属性code
-
-        // wsm_name: "", //仓库名
       },
       rules: {
         //出入库规则
@@ -333,44 +318,13 @@ export default {
       showModel: false,
       isDetail: false,
       modelId: 0,
-      tableData: [], //渲染表格
-      //
-      // 表格 - 数据
-      tableData: [],
-      // 表格 - 参数
-      table: {
-        stripe: true,
-        border: true,
-        // _defaultHeader_: ["setcol"],
-      },
       // 表格 - 分页
       pageInfo: {
         size: 15,
         curr: 1,
         total: 0,
       },
-      // 表格 - 列参数
-      columns: [
-        {
-          prop: "nickname",
-          label: "商品编号",
-        },
-        {
-          prop: "role_name",
-          label: "商品名称",
-        },
-        {
-          prop: "mobile",
-          label: "数量",
-        },
-        {
-          prop: "",
-          label: "操作",
-          fixed: "right",
-          _noset_: true,
-          _slot_: "operation",
-        },
-      ],
+
     };
   },
   mounted() {
@@ -543,7 +497,7 @@ export default {
               this.showModelThis = false;
               this.$emit("refresh", false);
             } else {
-              this.initForm();
+              // this.initForm();
             }
           } else if (res && res.code >= 100 && res.code <= 104) {
             await this.logout();
@@ -578,6 +532,4 @@ export default {
   },
 };
 </script>
-<style lang="scss" >
-</style>
    

+ 140 - 269
src/views/stock/stockCount/components/dataWeido/index.vue

@@ -27,22 +27,26 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="24">
-                <!-- 请选择仓库 -->
-                <el-col :span="5" style="width: 250px">
-                  <el-cascader
-                    placeholder="请选择仓库"
-                    filterable
-                    clearable
+                <el-col :span="12" style="width: 300px; padding: 0">
+                  <search-supplier
                     :size="searchSize"
-                    v-model="value"
-                    :options="options"
-                    style="width: 100%"
-                    @change="
-                      pageInfo.curr = 1;
-                      parmValue.page = 1;
-                      searchList();
-                    "
-                  ></el-cascader>
+                    :placeholder="'供应商公司'"
+                    :value="parmValue.supplier_code"
+                    @searchChange="selectSupplier"
+                  />
+                </el-col>
+                <el-col :span="12" style="width: 200px; padding-left: 10px">
+                  <search-stock
+                    :isDetail="true"
+                    :size="searchSize"
+                    :value="parmValue.stock_code"
+                    :disabled="isDisabled"
+                    :placeholder="'出库仓库'"
+                    :isRelation="true"
+                    :companyCode="supplier_code"
+                    :names="''"
+                    @searchChange="selectStock"
+                  />
                 </el-col>
                 <!-- 搜索 -->
                 <el-col :span="4" style="width: 74px; margin-left: 10px">
@@ -70,154 +74,57 @@
                     >重置</el-button
                   >
                 </el-col>
-                <!-- <el-col :span="4" style="width: 120px">
-                  <el-select
-                    :size="searchSize"
-                    v-model="parmValue.status"
-                    filterable
-                    clearable
-                    placeholder="账号状态"
-                    style="width: 100%"
-                    @change="
-                      pageInfo.curr = 1;
-                      parmValue.page = 1;
-                      searchList();
-                    "
-                  >
-                    <el-option
-                      v-for="item in statusList"
-                      :key="'status' + item.code"
-                      :label="item.name"
-                      :value="item.code"
-                    />
-                  </el-select>
-                </el-col>
-                <el-col :span="4" style="width: 150px; padding: 0 0 0 10px">
-                  <el-input
-                    :size="searchSize"
-                    v-model="parmValue.name"
-                    :maxlength="40"
-                    placeholder="业务员姓名"
-                  />
-                </el-col>
-                <el-col :span="4" style="width: 160px; padding: 0 0 0 10px">
-                  <el-input
-                    :size="searchSize"
-                    v-model="parmValue.username"
-                    :maxlength="40"
-                    placeholder="手机号"
-                  />
-                </el-col>
-                <el-col :span="4" style="width: 54px">
-                  <el-button
-                    :size="searchSize"
-                    type="primary"
-                    class="fr"
-                    icon="el-icon-search"
-                    @click="searchList"
-                /></el-col>
-                <el-col
-                  :span="4"
-                  style="width: 66px"
-                >
-                  <el-button
-                    type="warning"
-                    class="fr"
-                    :size="searchSize"
-                    @click="restSearch"
-                  >
-                    重置
-                  </el-button>
-                </el-col>
-                <el-col
-                  :span="3"
-                  style="width: 66px; float: right"
-                >
-                  <el-button
-                    :size="searchSize"
-                    type="primary"
-                    style="float: right; margin-left: 5px"
-                    @click="searchList"
-                  >
-                    刷新
-                  </el-button>
-                </el-col> -->
               </el-col>
             </el-row>
           </div>
         </template>
-        <!-- <template #status="{ scope }">
-          <el-tag
-            :size="tablebtnSize"
-            :type="scope.row.status == '0' ? 'warning' : ''"
-            v-text="
-              (statusOptions.find((item) => item.id == scope.row.status) || {})
-                .label || '--'
-            "
-          ></el-tag>
-        </template> -->
-        <!-- <template #operation="{ scope }"> -->
-        <!-- <el-tooltip
-            v-if="powers.some((item) => item == '002')"
-            effect="dark"
-            content="重置密码"
-            placement="top"
+               
+        <template #expand="{ scope }">
+                   
+          <el-table
+            :data="scope.row.child"
+            style="width: 100%; paddind: 20px"
+            border
+            size="small"
           >
-            <i
-              class="el-icon-refresh-left tb-icon"
-              @click="openPasswordModal(scope.row.id, false)"
-            ></i>
-          </el-tooltip> -->
-
-        <!-- <el-tooltip
-            v-if="powers.some((item) => item == '007')"
-            effect="dark"
-            content="详情"
-            placement="top"
-          >
-            <i
-              class="el-icon-view tb-icon"
-              @click="openModal(scope.row.id, true, scope.row)"
-            ></i>
-          </el-tooltip> -->
-        <!-- <el-tooltip
-            v-if="powers.some((item) => item == '005')"
-            effect="dark"
-            content="修改"
-            placement="top"
-          >
-            <i
-              class="el-icon-edit tb-icon"
-              @click="openModal(scope.row.id, false, scope.row)"
-            ></i>
-          </el-tooltip> -->
-        <!-- <el-tooltip
-            v-if="
-              powers.some((item) => item == '004') && scope.row.status === '1'
-            "
-            effect="dark"
-            content="禁用"
-            placement="top"
-          >
-            <i
-              class="el-icon-video-pause tb-icon"
-              @click="statusConfirm(scope.row.id, scope.row.status)"
-            ></i>
-          </el-tooltip> -->
-        <!-- <el-tooltip
-            v-if="
-              powers.some((item) => item == '004') && scope.row.status === '0'
-            "
-            effect="dark"
-            content="启用"
-            placement="top"
-          >
-            <i
-              class="el-icon-video-play tb-icon"
-              @click="statusConfirm(scope.row.id, scope.row.status)"
-            ></i>
-          </el-tooltip> -->
-        <!-- </template> -->
+                       
+            <el-table-column
+              label="商品编码"
+              prop="good_code"
+              width="80"
+            ></el-table-column>
+                       
+            <el-table-column
+              label="属性编码"
+              prop="good_type_code"
+              width="180"
+            ></el-table-column>
+                       
+            <el-table-column
+              label="商品名称"
+              prop="good_name"
+            ></el-table-column>
+                       
+            <el-table-column
+              label="商品属性"
+              prop="attribute"
+            ></el-table-column>
+                       
+            <el-table-column label="分类" prop="sort_f"></el-table-column>
+                       
+            <el-table-column
+              label="可用库存"
+              prop="usable_stock"
+            ></el-table-column>
+                       
+            <el-table-column
+              label="在途库存"
+              prop="intra_stock"
+            ></el-table-column>
+                     
+          </el-table>
+                 
+        </template>
       </ex-table>
       <add-edit
         :id="modelId"
@@ -237,8 +144,7 @@
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
 import statusList from "@/assets/js/statusList";
-import asyncRequest from "@/mock/service/stock/dataWeido";
-// import asyncRequest from "@/apis/service/stock/dataWeido";
+import asyncRequest from "@/apis/service/stock/dataWeido";
 
 import { mapGetters } from "vuex";
 
@@ -262,14 +168,15 @@ export default {
   },
   data() {
     return {
-      options: [],
-      statusList: statusList,
-      loading: true,
-      showModel: false,
-      isDetail: false,
-      modelId: 0,
+      stock_code: "",
+      supplier_code: "",
 
-      tableData: [],
+      parmValue: {
+        supplier_code: [],
+        stock_code: [],
+        page: 1, // 页码
+        size: 15, // 每页显示条数
+      },
 
       // 表格 - 数据
       tableData: [],
@@ -288,75 +195,98 @@ export default {
       // 表格 - 列参数
       columns: [
         {
-          prop: "nickname",
+          type: "expand",
+          _slot_: "expand",
+          label: "",
+        },
+        {
+          prop: "wsm_code",
           label: "仓库编号",
         },
         {
-          prop: "role_name",
+          prop: "wsm_name",
           label: "仓库名称",
         },
         {
-          prop: "mobile",
+          prop: "total_stock",
           label: "当前库存",
         },
         {
-          prop: "email",
+          prop: "wait_in_stock",
           label: "待入库",
         },
         {
-          prop: "status",
+          prop: "wait_out_stock",
           label: "待出库",
-          _slot_: "status",
           width: "80px",
         },
         {
-          prop: "addtime",
+          prop: "usable_stock",
           label: "可用库存",
           // sortable: true,
         },
         {
-          prop: "addtime",
+          prop: "intra_stock",
           label: "在途库存",
           // sortable: true,
         },
+        {
+          prop: "warn_stock",
+          label: "预警库存",
+        },
       ],
-      sitem: null,
-      // // 状态
-      // statusOptions: [
-      //   { id: "0", label: "禁用" },
-      //   { id: "1", label: "启用" },
-      // ],
-      // passwordModel: false,
-      // passwordModelId: 0,
-      // isPasswordDetail: false,
-      parmValue: {
-        // name: "", // 业务员名字
-        // username: "", // 账号
-        // status: "", //
-        // page: 1, // 页码
-        // size: 15, // 每页显示条数
-      },
     };
   },
   mounted() {
     this.searchList();
-    this.stockName();
+    // this.stockName();
   },
 
   methods: {
+    // 选择供应商仓库
+    selectStock(e) {
+      if (e && e.id) {
+        this.parmValue.stock_code = [e.code];
+        this.stock_code = e.code;
+      } else {
+        this.parmValue.stock_code = [];
+        this.stock_code = "";
+      }
+      if (this.parmValue.stock_code) {
+        this.searchList();
+      }
+    },
+    // 选择供应商
+    selectSupplier(e) {
+      if (e && e.id) {
+        this.parmValue.supplier_code = [e.code];
+        this.supplier_code = e.code;
+        this.isDisabled = false;
+      } else {
+        this.parmValue.stock_code = [];
+        this.parmValue.supplier_code = [];
+        this.stock_code = "";
+        this.supplier_code = "";
+        this.isDisabled = true;
+      }
+      if (this.parmValue.supplier_code) {
+        this.searchList();
+      }
+    },
     restSearch() {
-        // 表格 - 分页
+      // 表格 - 分页
       this.pageInfo = {
         size: 15,
         curr: 1,
         total: 0,
       };
       this.parmValue = {
-        name: "", // 业务员名字
-        username: "", // 账号
-        status: "", //
-        page: 1, // 页码
-        size: 15, // 每页显示条数
+        parmValue: {
+          supplier_code: [],
+          stock_code: [],
+          page: 1, // 页码
+          size: 15, // 每页显示条数
+        },
       };
       this.searchList();
     },
@@ -367,80 +297,21 @@ export default {
       this.isDetail = isDetail;
       this.sitem = sitem;
     },
-    async deleteById(id, status) {
-      // await this.$confirm("确定要删除?", {
-      //   confirmButtonText: "确定",
-      //   cancelButtonText: "取消",
-      //   type: "warning",
-      // })
-      //   .then(async () => {
-      //     const model = {
-      //       id: id,
-      //       status: status === "1" ? "0" : "1",
-      //     };
-      //     const res = await asyncRequest.status(model);
-      //     if (res && res.code === 0) {
-      //       this.$notify.success({
-      //         title: "删除成功",
-      //         message: "",
-      //       });
-      //       this.searchList();
-      //     } else if (res && res.code >= 100 && res.code <= 104) {
-      //       await this.logout();
-      //     } else {
-      //       this.$message.warning(res.message);
-      //     }
-      //   })
-      //   .catch(() => {
-      //     console.log("取消");
-      //   });
-    },
     async searchList() {
-      // this.loading = true;
-      // const res = await asyncRequest.list(this.parmValue);
-      // if (res && res.code === 0 && res.data) {
-      //   this.tableData = res.data.list;
-      //   this.pageInfo.total = Number(res.data.count);
-      // } else if (res && res.code >= 100 && res.code <= 104) {
-      //   await this.logout();
-      // } else {
-      //   this.tableData = [];
-      //   this.pageInfo.total = 0;
-      // }
-      // this.loading = false;
+      this.loading = true;
+      const res = await asyncRequest.list({ wsm_code: "WSMcmpk211008104949" });
+      if (res && res.code === 0 && res.data) {
+        this.tableData = res.data.list;
+        this.pageInfo.total = Number(res.data.count);
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
     },
 
-    async statusConfirm(id, status) {
-      // let str = status === "1" ? "禁用" : "启用";
-      // await this.$confirm("确定要改为" + str + "?", {
-      //   confirmButtonText: "确定",
-      //   cancelButtonText: "取消",
-      //   type: "warning",
-      // })
-      //   .then(async () => {
-      //     this.loading = true;
-      //     const model = {
-      //       id: id,
-      //       status: status === "1" ? "0" : "1",
-      //     };
-      //     const res = await asyncRequest.status(model);
-      //     if (res && res.code === 0) {
-      //       this.loading = false;
-      //       this.$notify.success({
-      //         title: "状态修改成功!",
-      //         message: "",
-      //       });
-      //       await this.searchList();
-      //     } else if (res && res.code >= 100 && res.code <= 104) {
-      //       await this.logout();
-      //     } else {
-      //       this.$message.warning(res.message);
-      //     }
-      //   })
-      //   .catch(() => {
-      //     console.log("取消");
-      //   });
-    },
     async stockName() {
       //获取多级仓库名称的方法
       const res = await asyncRequest.listAll(this.parmValue);

+ 0 - 0
src/views/stock/stockCount/components/dataWeido/数据维度 → src/views/stock/stockCount/components/dataWeido/仓库维度


+ 94 - 204
src/views/stock/stockCount/components/productWeido/index.vue

@@ -27,21 +27,12 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="24">
-                <el-col :span="5">
-                  <el-select
-                    v-model="value"
+                <el-col :span="10">
+                  <el-input
+                    v-model="parmValue.type_code"
                     :size="searchSize"
-                    filterable
-                    placeholder="请选择商品"
-                  >
-                    <el-option
-                      v-for="item in options"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
-                    </el-option>
-                  </el-select>
+                    placeholder="商品属性编码"
+                  />
                 </el-col>
 
                 <!-- 搜索 -->
@@ -66,7 +57,7 @@
                     :size="searchSize"
                     class="fr"
                     icon="el-icon-refresh-right"
-                    @click="searchList"
+                    @click="restSearch"
                     >重置</el-button
                   >
                 </el-col>
@@ -74,68 +65,44 @@
             </el-row>
           </div>
         </template>
-
-        <template #operation="{ scope }">
-          <el-tooltip
-            v-if="powers.some((item) => item == '002')"
-            effect="dark"
-            content="重置密码"
-            placement="top"
-          >
-            <i
-              class="el-icon-refresh-left tb-icon"
-              @click="openPasswordModal(scope.row.id, false)"
-            ></i>
-          </el-tooltip>
-
-          <el-tooltip
-            v-if="powers.some((item) => item == '007')"
-            effect="dark"
-            content="详情"
-            placement="top"
-          >
-            <i
-              class="el-icon-view tb-icon"
-              @click="openModal(scope.row.id, true, scope.row)"
-            ></i>
-          </el-tooltip>
-          <el-tooltip
-            v-if="powers.some((item) => item == '005')"
-            effect="dark"
-            content="修改"
-            placement="top"
-          >
-            <i
-              class="el-icon-edit tb-icon"
-              @click="openModal(scope.row.id, false, scope.row)"
-            ></i>
-          </el-tooltip>
-          <el-tooltip
-            v-if="
-              powers.some((item) => item == '004') && scope.row.status === '1'
-            "
-            effect="dark"
-            content="禁用"
-            placement="top"
+        <template #expand="{ scope }">
+          <el-table
+            :data="scope.row.child"
+            style="width: 100%; paddind: 20px"
+            border
+            size="small"
           >
-            <i
-              class="el-icon-video-pause tb-icon"
-              @click="statusConfirm(scope.row.id, scope.row.status)"
-            ></i>
-          </el-tooltip>
-          <el-tooltip
-            v-if="
-              powers.some((item) => item == '004') && scope.row.status === '0'
-            "
-            effect="dark"
-            content="启用"
-            placement="top"
-          >
-            <i
-              class="el-icon-video-play tb-icon"
-              @click="statusConfirm(scope.row.id, scope.row.status)"
-            ></i>
-          </el-tooltip>
+            <el-table-column
+              label="仓库名称"
+              prop="wsm_name"
+              width="80"
+            ></el-table-column>
+            <el-table-column
+              label="仓库编码"
+              prop="wsm_code"
+              width="180"
+            ></el-table-column>
+            <el-table-column
+              label="当前库存"
+              prop="total_stock"
+            ></el-table-column>
+            <el-table-column
+              label="待入库"
+              prop="wait_in_stock"
+            ></el-table-column>
+            <el-table-column
+              label="待出库"
+              prop="wait_out_stock"
+            ></el-table-column>
+            <el-table-column
+              label="可用库存"
+              prop="usable_stock"
+            ></el-table-column>
+            <el-table-column
+              label="在途库存"
+              prop="intra_stock"
+            ></el-table-column>
+          </el-table>
         </template>
       </ex-table>
       <add-edit
@@ -156,9 +123,7 @@
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
 import statusList from "@/assets/js/statusList";
-// import asyncRequest from "@/apis/service/stock/productWeido";
-import asyncRequest from "@/mock/service/stock/allot"; //获取商品假数据
-
+import asyncRequest from "@/apis/service/stock/productWeido";
 import { mapGetters } from "vuex";
 
 export default {
@@ -181,32 +146,18 @@ export default {
   },
   data() {
     return {
-      options: [],
-      sitem: null,
-      // 状态
-      statusOptions: [
-        { id: "0", label: "禁用" },
-        { id: "1", label: "启用" },
-      ],
       statusList: statusList,
       loading: true,
       showModel: false,
       isDetail: false,
       modelId: 0,
+      //入参参数
       parmValue: {
-        //入参参数
-        name: "", // 业务员名字
-        username: "", // 账号
-        status: "", //
+        type_code: "", //商品属性编码
         page: 1, // 页码
         size: 15, // 每页显示条数
       },
       tableData: [], //渲染表格数据
-      passwordModel: false,
-      passwordModelId: 0,
-      isPasswordDetail: false,
-      // 表格 - 数据
-      tableData: [],
       // 表格 - 参数
       table: {
         stripe: true,
@@ -222,42 +173,58 @@ export default {
       // 表格 - 列参数
       columns: [
         {
-          prop: "nickname",
+          type: "expand",
+          _slot_: "expand",
+          label: "",
+        },
+        {
+          prop: "good_code",
           label: "商品编码",
+          width: "150",
+        },
+        {
+          prop: "type_code",
+          label: "属性编码",
+          width: "150",
         },
         {
-          prop: "role_name",
+          prop: "good_name",
           label: "商品名称",
+          width: "120",
         },
         {
-          prop: "mobile",
+          prop: "sort_f",
           label: "分类",
         },
         {
-          prop: "email",
+          prop: "unit",
           label: "单位",
+          width: "50",
         },
         {
-          prop: "status",
+          prop: "usable_stock",
           label: "当前库存",
-          _slot_: "status",
-          width: "80px",
+          width: "80",
         },
         {
-          prop: "addtime",
+          prop: "wait_in_stock",
           label: "待入库",
+          width: "80",
         },
         {
-          prop: "addtime",
+          prop: "wait_out_stock",
           label: "待出库",
+          width: "80",
         },
         {
-          prop: "addtime",
-          label: "可用库存",
+          prop: "intra_stock",
+          label: "在途库存",
+          width: "80",
         },
         {
-          prop: "addtime",
-          label: "在途库存",
+          prop: "intra_stock",
+          label: "预警库存",
+          width: "80",
         },
       ],
     };
@@ -269,113 +236,36 @@ export default {
   methods: {
     //重置参数
     restSearch() {
-        // 表格 - 分页
+      // 表格 - 分页
       this.pageInfo = {
         size: 15,
         curr: 1,
         total: 0,
       };
-      this.parmValue = {};
+      this.parmValue = {
+        type_code: "",
+        size: 15,
+        curr: 1,
+      };
       this.searchList();
     },
-
-    openModal(id, isDetail, sitem) {
-      this.showModel = true;
-      this.modelId = id;
-      this.isDetail = isDetail;
-      this.sitem = sitem;
-    },
-    //删除功能
-    async deleteById(id, status) {
-      // await this.$confirm("确定要删除?", {
-      //   confirmButtonText: "确定",
-      //   cancelButtonText: "取消",
-      //   type: "warning",
-      // })
-      //   .then(async () => {
-      //     const model = {
-      //       id: id,
-      //       status: status === "1" ? "0" : "1",
-      //     };
-      //     const res = await asyncRequest.status(model);
-      //     if (res && res.code === 0) {
-      //       this.$notify.success({
-      //         title: "删除成功",
-      //         message: "",
-      //       });
-      //       this.searchList();
-      //     } else if (res && res.code >= 100 && res.code <= 104) {
-      //       await this.logout();
-      //     } else {
-      //       this.$message.warning(res.message);
-      //     }
-      //   })
-      //   .catch(() => {
-      //     console.log("取消");
-      //   });
-    },
     //获取列表功能
     async searchList() {
-      console.log("无列表接口");
-      const res = await asyncRequest.goodsList(this.parmValue);
-      console.log(res.data.list);
-      res.data.list.forEach((element) => {
-        // console.log(element);
-        let op = {
-          value: element.orderNo,
-          label: element.goods,
-        };
-        this.options.push(op);
-        // console.log(this.options);
-      });
-      // this.loading = true;
-      // const res = await asyncRequest.list(this.parmValue);
-      // if (res && res.code === 0 && res.data) {
-      //   this.tableData = res.data.list;
-      //   this.pageInfo.total = Number(res.data.count);
-      // } else if (res && res.code >= 100 && res.code <= 104) {
-      //   await this.logout();
-      // } else {
-      //   this.tableData = [];
-      //   this.pageInfo.total = 0;
-      // }
-      // this.loading = false;
-    },
-    //启用禁用状态更改
-    async statusConfirm(id, status) {
-      // let str = status === "1" ? "禁用" : "启用";
-      // await this.$confirm("确定要改为" + str + "?", {
-      //   confirmButtonText: "确定",
-      //   cancelButtonText: "取消",
-      //   type: "warning",
-      // })
-      //   .then(async () => {
-      //     this.loading = true;
-      //     const model = {
-      //       id: id,
-      //       status: status === "1" ? "0" : "1",
-      //     };
-      //     const res = await asyncRequest.status(model);
-      //     if (res && res.code === 0) {
-      //       this.loading = false;
-      //       this.$notify.success({
-      //         title: "状态修改成功!",
-      //         message: "",
-      //       });
-      //       await this.searchList();
-      //     } else if (res && res.code >= 100 && res.code <= 104) {
-      //       await this.logout();
-      //     } else {
-      //       this.$message.warning(res.message);
-      //     }
-      //   })
-      //   .catch(() => {
-      //     console.log("取消");
-      //   });
+      this.loading = true;
+      // { type_code: "GY202104290049" }
+      const res = await asyncRequest.list(this.parmValue);
+      if (res && res.code === 0 && res.data) {
+        this.tableData = res.data.list;
+        this.pageInfo.total = Number(res.data.count);
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.tableData = [];
+        this.pageInfo.total = 0;
+      }
+      this.loading = false;
     },
   },
 };
 </script>
-<style lang="scss" scoped>
-</style>
    

+ 1 - 2
src/views/stock/stockCount/index.vue

@@ -8,7 +8,7 @@
           <el-col>
             <el-tabs v-model="activeName" @tab-click="handleClick">
               <el-tab-pane label="商品维度" name="productWeido"></el-tab-pane>
-              <el-tab-pane label="数据维度" name="dataWeido"></el-tab-pane>
+              <el-tab-pane label="仓库维度" name="dataWeido"></el-tab-pane>
               <el-tab-pane label="区间统计" name="count"></el-tab-pane>
             </el-tabs>
           </el-col>
@@ -35,7 +35,6 @@
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
 import statusList from "@/assets/js/statusList";
-// import asyncRequest from "@/apis/service/stock/nowCount";
 import DataWeido from "./components/dataWeido";
 import ProductWeido from "./components/productWeido";
 import SpaceCount from "./components/spaceCount";

+ 16 - 17
src/views/stock/stockWarning/index.vue

@@ -207,22 +207,22 @@ export default {
   },
   data() {
     return {
-      stockCode: "", 
-      supplier_code: "", 
-      isDisabled: true, 
+      stock_code: "",
+      supplier_code: "",
+      isDisabled: true,
       statusList: statusList,
       loading: true,
       showModel: false,
       isDetail: false,
       modelId: 0,
       parmValue: {
-        goods_sn: "", 
-        supplier_code: [], 
+        goods_sn: "",
+        supplier_code: [],
         stock_code: [],
-        warn_num_low: "", 
-        warn_num_up: "", 
-        stock_num_low: "", 
-        stock_num_up: "", 
+        warn_num_low: "",
+        warn_num_up: "",
+        stock_num_low: "",
+        stock_num_up: "",
       },
       // 表格 - 数据
       tableData: [],
@@ -251,11 +251,10 @@ export default {
     selectStock(e) {
       if (e && e.id) {
         this.parmValue.stock_code = [e.code];
-        this.stockCode = e.code;
+        this.stock_code = e.code;
       } else {
         this.parmValue.stock_code = [];
         this.stock_code = "";
-        this.parmValue.goods_sn = "";
       }
       if (this.parmValue.stock_code) {
         this.searchList();
@@ -319,12 +318,12 @@ export default {
         total: 0,
       };
       this.parmValue = {
-        goods_sn: "", 
-        supplier_code: [], 
-        stock_code: [], 
-        warn_num_low: "", 
-        warn_num_up: "", 
-        stock_num_low: "", 
+        goods_sn: "",
+        supplier_code: [],
+        stock_code: [],
+        warn_num_low: "",
+        warn_num_up: "",
+        stock_num_low: "",
         stock_num_up: "",
       };
       this.searchList();

+ 90 - 131
src/views/stock/survey/index.vue

@@ -5,19 +5,27 @@
     >
       <div style="width: 100%">
         <el-row style="padding: 20px 0 0 30px">
-          <el-col :span="8">
-            <CompanySearch
-              style="dispaly: inline-block; padding-left: 10px"
-              @searchCard="getCompany"
-              :isSize="isSize"
-            ></CompanySearch>
+          <el-col :span="12" style="width: 300px; padding: 0">
+            <search-supplier
+              :size="searchSize"
+              :placeholder="'供应商公司'"
+              :value="parmValue.supplier_code"
+              @searchChange="selectSupplier"
+            />
+          </el-col>
+          <el-col :span="12" style="width: 200px; padding-left: 10px">
+            <search-stock
+              :isDetail="true"
+              :size="searchSize"
+              :value="parmValue.stock_code"
+              :disabled="isDisabled"
+              :placeholder="'出库仓库'"
+              :isRelation="true"
+              :companyCode="supplier_code"
+              :names="''"
+              @searchChange="selectStock"
+            />
           </el-col>
-          <el-col :span="8"
-            ><StockSearch
-              :isDisabled="isDesabled"
-              :isSize="isSize"
-            ></StockSearch
-          ></el-col>
         </el-row>
       </div>
 
@@ -26,10 +34,9 @@
           <el-col :span="24" class="card">
             <el-card shadow="always">
               <i :class="item.icon" class="icon"></i>
-              <!-- <p>{{ item.num }}</p> -->
               <countTo
                 style="display: block"
-                :startVal="startVal"
+                :startVal="0"
                 :endVal="item.endVal"
                 :duration="3000"
               ></countTo>
@@ -82,9 +89,7 @@
    <script>
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
-// import statusList from "@/assets/js/statusList";
-import asyncRequest from "@/apis/service/stock/stockWarning";
-// import asyncRequest from "@/mock/service/stock/survey";
+import asyncRequest from "@/apis/service/stock/survey";
 import countTo from "vue-count-to";
 import addEdit from "./addEdit";
 import { mapGetters } from "vuex";
@@ -112,11 +117,13 @@ export default {
   },
   data() {
     return {
-      isSize: true, //控制输入框的尺寸
-      isDesabled: "",
-      options: [], //用于渲染多级仓库的数据
-      startVal: 0, //动态效果显示卡片内的数字数量
-      stock: [],
+      isDisabled: true,
+      stock_code: "",
+      supplier_code: "",
+      parmValue: {
+        supplier_code: [],
+        stock_code: [],
+      },
       stock_list: [
         //渲染表格上方的卡片选项用的
         {
@@ -155,7 +162,6 @@ export default {
           endVal: 0,
         },
       ],
-      arr1: [],
 
       loading: true,
       showModel: false,
@@ -211,40 +217,48 @@ export default {
       ],
       parmValue: {
         //入参参数
-        // name: "", // 业务员名字
-        // username: "", // 账号
-        // status: "", //
-        // page: 1, // 页码
-        // size: 15, // 每页显示条数
       },
-      // 状态
-      // statusOptions: [
-      //   { id: "0", label: "禁用" },
-      //   { id: "1", label: "启用" },
-      // ],
-      // nowStock: 20, //当前库存
-      // stayStock: 0, //待入库
-      // stayOutStock: 0, //待出库
-      // stockAble: 0, //可用库存
-      // roadStock: 10, //在途库存
-      // sitem: null,
-      // tableData: [], //渲染表格数据
-      // passwordModel: false,
-      // passwordModelId: 0,
-      // isPasswordDetail: false,
-      // statistics: [],
     };
   },
   mounted() {
-    this.searchList(); //获取表格信息
-    // this.stockList(); //获取卡片内库存数据信息
-    // this.stockName(); //获取多级仓库列表信息
+    // this.searchList(); //获取表格信息
+    this.stockList();
   },
 
   methods: {
-    wchange(e) {
+    // 选择供应商仓库
+    selectStock(e) {
+      console.log(e);
+      if (e && e.id) {
+        this.parmValue.stock_code = [e.code];
+        this.stock_code = e.code;
+      } else {
+        this.parmValue.stock_code = [];
+        this.stock_code = "";
+      }
+      if (this.parmValue.stock_code) {
+        this.stockList();
+      }
+    },
+    // 选择供应商
+    selectSupplier(e) {
       console.log(e);
+      if (e && e.id) {
+        this.parmValue.supplier_code = [e.code];
+        this.supplier_code = e.code;
+        this.isDisabled = false;
+      } else {
+        this.parmValue.stock_code = [];
+        this.parmValue.supplier_code = [];
+        this.stock_code = "";
+        this.supplier_code = "";
+        this.isDisabled = true;
+      }
+      if (this.parmValue.supplier_code) {
+        this.stockList();
+      }
     },
+
     restSearch() {
       // 表格 - 分页
       this.pageInfo = {
@@ -300,61 +314,39 @@ export default {
       //     console.log("取消");
       //   });
     },
-    getCompany(val) {
-      console.log("获取仓库数据");
-      console.log(val);
-      this.isDesabled = val;
-      console.log(this.isDesabled);
-      // this.stockList();
-    },
+    //获取表格上方的卡片数据
     async stockList() {
-      //获取表格上方的卡片数据
-      // console.log(this.stock_list);
-      const res1 = await asyncRequest.list(this.parmValue);
-      // console.log(res1.data);
-      // const { value1, value2, value3, value4, value5 } = res1.data;
-      // this.stock.push(value1, value2, value3, value4, value5);
-      // this.endVal = value1;
-      // console.log(this.stock);
-      // console.log(this.stock_list[5].num);
-      for (let i = 0; i <= this.stock_list.length - 1; i++) {
-        // this.stock_list[i].num = this.stock[i];
-        this.stock_list[i].endVal = this.stock[i];
+      const res = await asyncRequest.stockLisk({ type_code: "GY202104290049" });
+      let {
+        total_stock,
+        wait_in_stock,
+        wait_out_stock,
+        usable_stock,
+        intra_stock,
+      } = res.data[0];
+
+      let arr = [
+        Number(total_stock),
+        Number(wait_in_stock),
+        Number(wait_out_stock),
+        Number(usable_stock),
+        Number(intra_stock),
+      ];
+      if (res && res.code === 0 && res.data) {
+        for (let i = 0; i <= this.stock_list.length - 1; i++) {
+          this.stock_list[i].endVal = arr[i];
+        }
+      } else if (res && res.code >= 100 && res.code <= 104) {
+        await this.logout();
+      } else {
+        this.tableData = [];
+        this.pageInfo.total = 0;
       }
-      // console.log(this.stock_list);
     },
-    // async stockName() {
-    //   //获取多级仓库名称的方法
-    //   const res = await asyncRequest.listAll(this.parmValue);
-    //   // console.log(res.data);
-    //   // this.options = res.data;
-    //   // console.log(this.options);
-    //   let arr = res.data;
-    //   // console.log(arr);
-    //   arr.forEach((ele) => {
-    //     let item = {
-    //       value: ele.id,
-    //       label: ele.name,
-    //       children: [],
-    //     };
-    //     ele.child.forEach((elem) => {
-    //       let model = {
-    //         value: elem.id,
-    //         label: elem.name,
-    //       };
-    //       item.children.push(model);
-    //     });
-    //     this.options.push(item);
-    //   });
-    //   console.log(this.options);
-    //   // console.log(this.pageInfo.total);
-    // },
+    //获取表格数据
     async searchList() {
-      //获取表格数据
       this.loading = true;
-      let model = {
-        type_code: "WSMcmpk211008104949",
-      };
+      let model = {};
       // const res = await asyncRequest.list(this.parmValue);
       const res = await asyncRequest.list(model);
       // console.log(res);
@@ -372,39 +364,6 @@ export default {
       }
       this.loading = false;
     },
-
-    async statusConfirm(id, status) {
-      //启用禁用状态
-      // let str = status === "1" ? "禁用" : "启用";
-      // await this.$confirm("确定要改为" + str + "?", {
-      //   confirmButtonText: "确定",
-      //   cancelButtonText: "取消",
-      //   type: "warning",
-      // })
-      //   .then(async () => {
-      //     this.loading = true;
-      //     const model = {
-      //       id: id,
-      //       status: status === "1" ? "0" : "1",
-      //     };
-      //     const res = await asyncRequest.status(model);
-      //     if (res && res.code === 0) {
-      //       this.loading = false;
-      //       this.$notify.success({
-      //         title: "状态修改成功!",
-      //         message: "",
-      //       });
-      //       await this.searchList();
-      //     } else if (res && res.code >= 100 && res.code <= 104) {
-      //       await this.logout();
-      //     } else {
-      //       this.$message.warning(res.message);
-      //     }
-      //   })
-      //   .catch(() => {
-      //     console.log("取消");
-      //   });
-    },
   },
 };
 </script>