From 13b0bad30ef1df53492cbab1c1b99dfc02dee63f Mon Sep 17 00:00:00 2001
From: haoyahui <2032914783@qq.com>
Date: 星期二, 21 十一月 2023 17:51:16 +0800
Subject: [PATCH] 台账管理,盘点任务开发

---
 admin-web/src/views/stock/ledger/inventoryQuery/index.vue |  321 +++++++++++++++++++++--------------------------------
 1 files changed, 128 insertions(+), 193 deletions(-)

diff --git a/admin-web/src/views/stock/ledger/inventoryQuery/index.vue b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
index 2936cd9..178681a 100644
--- a/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
+++ b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
@@ -10,152 +10,140 @@
           <el-row style="margin-top: 15px">
             <el-col>
               <!--鍒楄〃-->
-              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table" />
             </el-col>
           </el-row>
-          <!--娣诲姞/缂栬緫寮圭獥-->
-          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
         </el-card>
       </el-container>
     </el-container>
-    <my-import
-      :import-setting="importSetting"
-      :dialog-show="importSetting.dialogShow"
-      :dialog-title="importSetting.dialogTitle"
-    />
+    
   </div>
 </template>
 
 <script>
-import MyTableV2 from "@/components/myTable/myTableV2";
-import MyButton from "@/components/myButton/myButton";
+import MyTableV2 from '@/components/myTable/myTableV2';
+import MyButton from '@/components/myButton/myButton';
 import SettingIplatform from '@/utils/settingIplatform';
-import edit from './edit'
-import * as finsystenant from '@/api/baseSetting/finsystenant'
-import myImport from '@/views/components/myImport'
-import {getBaseUrl} from '@/utils/base';
+import * as finsystenant from '@/api/baseSetting/finsystenant';
+import { getBaseUrl } from '@/utils/base';
+import { selectTenantWarehouse, getCategorySelectTree, treeList } from '@/api/baseSetting/finsystenant';
+import { getDicts } from '@/api/system/dict/data';
+import { doExport } from '@/api/stock/ledger';
 
 export default {
-  name: "index",
-  components: {MyButton, MyTableV2, edit, myImport},
+  name: 'index',
+  components: { MyButton, MyTableV2 },
   data() {
     return {
       // 鎼滅储妗�
       items: [
         {
-          type: 'text',
-          dataIndex: 'name',
-          label: '鍗曞彿',
-          placeholder: '璇疯緭鍏�',
-          defaultValue: ''
+          type: 'cascader',
+          dataIndex: 'agencyId',
+          label: '鏈烘瀯',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '',
+          options: [],
+          cascader: [{key:'warehouseId',queryKey: 'agencyId'},{key:'goodsTemplateId',queryKey: 'agencyId'}],
+          optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
         },
         {
           type: 'select',
-          dataIndex: 'status',
-          label: '绫诲瀷',
+          dataIndex: 'warehouseId',
+          label: '浠撳簱',
           placeholder: '璇烽�夋嫨',
-          defaultValue: '1',
-          options: [
-            {
-              label: '鍚敤',
-              value: '1'
-            },
-            {
-              label: '绂佺敤',
-              value: '0'
-            }
-          ]
+          defaultValue: '',
+          options: [],
+          optionsConfig: {
+            label: 'warehouseName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse'
+          },
         },
         {
-          type: 'text',
-          dataIndex: 'name',
+          type: 'select',
+          dataIndex: 'goodsTemplateId',
           label: '鐗╁搧鍚嶇О',
           placeholder: '璇疯緭鍏�',
-          defaultValue: ''
+          defaultValue: '',
+          options: [],
+          cascader: [{key:'categoryId',queryKey: 'goodsTemplatesId'}],
+          optionsConfig: {
+            label: 'goodsName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+          },
         },
         {
-          type: 'text',
-          dataIndex: 'name',
-          label: '鍒涘缓浜�',
-          placeholder: '璇疯緭鍏�',
-          defaultValue: ''
+          type: 'select',
+          dataIndex: 'categoryId',
+          label: '鍒嗙被',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '',
+          options: [],
+          optionsConfig: {
+            label: 'modelName',
+            value: 'id',
+            url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel'
+          },
+        },
+        {
+          type: 'select',
+          dataIndex: 'costType',
+          label: '绫诲埆',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '',
+          options: [],
+          optionsConfig: {
+            label: 'dict_label',
+            value: 'dict_value',
+            url: SettingIplatform.apiBaseURL + '/permit/dict/data/type/GOODS_PRICE',
+          },
         },
       ],
       // 鏍戞暟鎹�
       treeDataList: [],
       // 鎼滅储鏉′欢
       filterFrom: {
-        tenantId: null,
-        userName: null,
-        userPhone: null,
-        status: 1
-      },
-      // 瀵煎叆
-      importSetting: {
-          dialogTitle: '瀵煎叆',
-          dialogShow: false,
-          fileSettings: {
-              data: {},
-              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
-              accept: '.xls', // 鏍煎紡
-              type: 'text', // 鍥炴樉褰㈠紡
-              loading: false // 瀵煎叆鏁堟灉
-          },
-          /* 妯℃澘涓嬭浇 */
-          templateSettings: {
-              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
-              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
-          },
-          onSuccess: null
-      },
-      editSetting: {
-        title: '',
-        id: '',
-        orgId: '',
-        show: false,
+        warehouseType:0
       },
       // 琛ㄦ牸鏁版嵁
       table: {
         showIndex: true, // 鏄惁鏄剧ず搴忓彿
         expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
-        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        url: SettingIplatform.apiBaseURL + '/pc/fin/warehouse/ledger/getList', // 璇锋眰鍦板潃
         // 宸ュ叿鏉�
         tools: {
-          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
-            show: false
+          columnsCtrl: {
+            // 鍒楁帶鍒舵寜閽�
+            show: false,
           },
-          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
-            show: false
+          generalExport: {
+            // 閫氱敤瀵煎嚭鎸夐挳
+            show: false,
           },
           // 鑷畾涔夊伐鍏锋潯鎸夐挳
           custom: [
-          ]
-        },
-        // 鍒椾俊鎭�
-        columns: [
-          {title: '绫诲瀷', field: 'name', align: 'left',},
-          {title: '鍗曞彿', field: 'code', align: 'center'},
-          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
-          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
-          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
-          {title: '閲戦', field: 'summary', align: 'left',},
-          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
-          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
-          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
-        ],
-        // 鎿嶄綔淇℃伅
-        operation: {
-          show: true, // 鏄剧ず鎿嶄綔鍒�
-          width: '150', // 鍒楀
-          attr: [
             {
-              title: '璇︽儏',
-              events: (row) => {
-                this.showAudit(row);
+              name: '瀵煎嚭',
+              icon: 'el-icon-download',
+              click: () => {
+                this.handleExport();
               },
             },
           ],
         },
+        // 鍒椾俊鎭�
+        columns: [
+          { title: '鏈烘瀯', field: 'agencyName', align: 'center' },
+          { title: '浠撳簱', field: 'warehouseName', align: 'center' },
+          { title: '鍒嗙被', field: 'categoryName', align: 'center' },
+          { title: '鎵�灞炵被鍒�', field: 'costType', align: 'center' },
+          { title: '鐗╁搧鍚嶇О', field: 'goodsTemplateName', align: 'left' },
+          { title: '瑙勬牸鍨嬪彿', field: 'baseGoodsModelsName', align: 'left' },
+          { title: '鍗曚綅', field: 'unit', align: 'left' },
+          { title: '褰撳墠搴撳瓨', field: 'kucun', align: 'left' },
+        ],
         paging: {
           show: true, // 鏄剧ず鍒嗛〉
           // 鍒嗛〉淇℃伅
@@ -163,118 +151,65 @@
             small: false,
             pageNum: 1,
             pageSize: 10,
-            total: 0
-          }
-        }
+            total: 0,
+          },
+        },
       },
-    }
+    };
   },
   created() {
-    // 鑾峰彇鏈烘瀯鏍�
-    this.initTreeData()
+    // this.initQuery();
   },
   methods: {
-    //瀵煎叆
-    importOrg() {
-        this.importSetting.dialogShow = true
-        this.importSetting.onSuccess = (response, callBack) => {
-            if (response.code===1){
-              this.$message.success(response.msg)
-              this.search(1)
-            }else{
-              this.$message.warning(response.msg)
-            }
-            callBack()
-        }
-    },
-    // 宸︿晶鏍戝垵濮嬪寲
-    initTreeData() {
-      finsystenant.getTree().then(res => {
-        const content = res || []
-        this.treeDataList.splice(0, this.treeDataList.length)
-        this.treeDataList = content
-        if (content.length > 0) {
-          this.importSetting.fileSettings.data = {pid: content[0].id}
-        }
-      })
-    },
-    updState(row) {
-      let vm = this
-      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
-      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
-        let params = Object.assign({}, row)
-        params.status = row.status == 1 ? 0 : 1
-        finsystenant.edit(params).then(res => {
-          if (res) {
-            row.status = row.status === 1 ? 0 : 1
-            vm.$modal.msgSuccess(text + "鎴愬姛");
-            vm.search()
-          }
-        })
-      })
-    },
-    del(row) {
-      this.$modal
-        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
-        .then(function () {
-          finsystenant.del({id: row.id}).then((res) => {
-          });
-        })
+    // 瀵煎嚭
+    handleExport() {
+      let loading = this.$loading({
+        lock: true,
+        text: '瀵煎嚭涓紝璇风◢鍊�...',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      // 鍒ゆ柇鎬绘潯鏁版槸鍚﹀ぇ浜庢渶澶ф敮鎸佹潯鏁�
+      doExport({ ...this.filterFrom })
         .then((res) => {
-          this.$message.success('鍒犻櫎鎴愬姛锛�');
-          this.search()
+          const blob = new Blob([res], { type: 'application/vnd.ms-excel' });
+          const fileName = `搴撳瓨鏌ヨ.xls`;
+          if ('download' in document.createElement('a')) {
+            // 闈濱E涓嬭浇
+            const elink = document.createElement('a');
+            elink.download = fileName;
+            elink.style.display = 'none';
+            elink.href = URL.createObjectURL(blob);
+            document.body.appendChild(elink);
+            elink.click();
+            URL.revokeObjectURL(elink.href);
+            document.body.removeChild(elink);
+          } else {
+            // IE10+涓嬭浇
+            navigator.msSaveBlob(blob, fileName);
+          }
+          this.$message.success('瀵煎嚭鎴愬姛锛�');
+          loading.close();
         })
         .catch(() => {
+          loading.close();
         });
     },
-    showAdd() {
-      // if (!this.editSetting.orgId) {
-      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
-      // } else {
-        this.editSetting.id = null;
-        this.editSetting.info = null;
-        this.editSetting.title = '鏂板';
-        this.editSetting.show = true;
-      // }
-    },
-    showAudit(row) {
-      this.editSetting.id = row.id;
-      this.editSetting.info = JSON.stringify(row);
-      this.editSetting.title = '缂栬緫';
-      this.editSetting.show = true;
-    },
-    nodeClick(param) {
-      param = param || {}
-      this.p = Object.assign({}, {
-        id: param.id,
-        name: param.name
-      })
-      if (this.p.id != undefined && this.p.id != null) {
-        this.filterFrom.tenantId = this.p.id
-        this.editSetting.orgId = this.p.id
-      } else {
-        this.filterFrom.tenantId = null
-        this.editSetting.orgId = null
-      }
-      this.importSetting.fileSettings.data = {pid: param.id}
-      this.search(1)
-    },
+
     // 鏌ヨtable鍒楄〃
     search(pageNum) {
       if (pageNum != undefined) {
-        this.$refs.myTable.search(pageNum)
+        this.$refs.myTable.search(pageNum);
       } else {
-        this.$refs.myTable.search()
+        this.$refs.myTable.search();
       }
     },
     fifterForm(params) {
-      this.filterFrom = Object.assign(this.filterFrom, params)
-      this.search(1)
-    }
-  }
-}
+      this.filterFrom = Object.assign(this.filterFrom, params);
+      this.search(1);
+    },
+  },
+};
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>

--
Gitblit v1.9.1