From 6bdb0ee05d8661eb919c715a8c2f492c720dec30 Mon Sep 17 00:00:00 2001
From: anthonywj <yewenjie20@vip.qq.com>
Date: Tue, 30 Jul 2024 18:36:44 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=88=86=E6=94=AF=E5=A4=87?=
 =?UTF-8?q?=E4=BB=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/views/inout/DialogSelectInvProduct.vue | 170 ++++++++++++++++++---
 1 file changed, 147 insertions(+), 23 deletions(-)

diff --git a/src/views/inout/DialogSelectInvProduct.vue b/src/views/inout/DialogSelectInvProduct.vue
index 8c0be52c..d777b63b 100644
--- a/src/views/inout/DialogSelectInvProduct.vue
+++ b/src/views/inout/DialogSelectInvProduct.vue
@@ -68,28 +68,123 @@
       <el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row="false" border
                 @current-change="handleChange"
                 ref="multipleTable">
-        <el-table-column label width="45" v-if="type==3 ">
-          <template slot-scope="scope">
-            <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
-          </template>
-        </el-table-column>
-        <el-table-column type="selection" width="55" v-if="type!=3"></el-table-column>
-        <el-table-column label="序号" type="index" width="55"></el-table-column>
-        <el-table-column label="DI/物资编码" prop="nameCode" width="120" show-overflow-tooltip></el-table-column>
-        <el-table-column label="物资名称" prop="cpmctymc" width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column label="规格型号" prop="ggxh" width="160"></el-table-column>
-        <el-table-column label="包装规格" prop="bzgg" width="100"></el-table-column>
-        <el-table-column label="计量单位" prop="measname" width="90"></el-table-column>
-        <el-table-column label="批次号" prop="batchNo" width="90"></el-table-column>
-        <el-table-column label="价格" prop="price"></el-table-column>
-        <el-table-column label="生产日期" prop="productionDate" width="90"></el-table-column>
-        <el-table-column label="失效日期" prop="expireDate" width="90"></el-table-column>
-        <el-table-column label="入库数量" prop="inCount" width="90"></el-table-column>
-        <el-table-column label="出库数量" prop="outCount" width="90"></el-table-column>
-        <el-table-column label="结余数量" prop="reCount" width="90"></el-table-column>
-        <el-table-column label="生产企业" prop="ylqxzcrbarmc" width="180"></el-table-column>
-        <el-table-column label="注册/备案号" prop="zczbhhzbapzbh" width="180"></el-table-column>
-        <el-table-column label="供应商" prop="supName" width="180"></el-table-column>
+        <!--        <el-table-column label width="45" v-if="type==3 ">-->
+        <!--          <template slot-scope="scope">-->
+        <!--            <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>-->
+        <!--          </template>-->
+        <!--        </el-table-column>-->
+        <!--        <el-table-column type="selection" width="55" v-if="type!=3"></el-table-column>-->
+        <!--        <el-table-column label="序号" type="index" width="55"></el-table-column>-->
+        <!--        <el-table-column label="DI/物资编码" prop="nameCode" width="120" show-overflow-tooltip></el-table-column>-->
+        <!--        <el-table-column label="物资名称" prop="cpmctymc" width="160" show-overflow-tooltip></el-table-column>-->
+        <!--        <el-table-column label="规格型号" prop="ggxh" width="160"></el-table-column>-->
+        <!--        <el-table-column label="包装规格" prop="bzgg" width="100"></el-table-column>-->
+        <!--        <el-table-column label="计量单位" prop="measname" width="90"></el-table-column>-->
+        <!--        <el-table-column label="批次号" prop="batchNo" width="90"></el-table-column>-->
+        <!--        <el-table-column label="价格" prop="price"></el-table-column>-->
+        <!--        <el-table-column label="生产日期" prop="productionDate" width="90"></el-table-column>-->
+        <!--        <el-table-column label="失效日期" prop="expireDate" width="90"></el-table-column>-->
+        <!--        <el-table-column label="入库数量" prop="inCount" width="90"></el-table-column>-->
+        <!--        <el-table-column label="出库数量" prop="outCount" width="90"></el-table-column>-->
+        <!--        <el-table-column label="结余数量" prop="reCount" width="90"></el-table-column>-->
+        <!--        <el-table-column label="生产企业" prop="ylqxzcrbarmc" width="180"></el-table-column>-->
+        <!--        <el-table-column label="注册/备案号" prop="zczbhhzbapzbh" width="180"></el-table-column>-->
+        <!--        <el-table-column label="供应商" prop="supName" width="180"></el-table-column>-->
+
+        <template v-for="(item, index) in tableHeader">
+          <el-table-column
+            v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
+            type="index" :label="item.columnDesc"></el-table-column>
+          <el-table-column
+            v-if="item.columnType == 'selection'"
+            type="selection"
+            :width="item.width"
+            :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
+          ></el-table-column>
+
+          <el-table-column
+            v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
+            :prop="item.columnName"
+            :label="item.columnDesc"
+            :sortable="item.sort"
+            :width="item.width"
+            :show-overflow-tooltip="item.tooltip"
+            :key="item.columnName"
+          >
+            <template slot-scope="scope">
+              <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
+            </template>
+          </el-table-column>
+          <el-table-column
+            v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
+            :prop="item.columnName"
+            :label="item.columnDesc"
+            :sortable="item.sort"
+            :width="item.width"
+            :show-overflow-tooltip="item.tooltip"
+            :key="item.columnName"
+          >
+            <template slot-scope="scope">
+              <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
+                  item.lableRuleObj[scope.row[item.columnName]]
+                }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
+            :prop="item.columnName"
+            :label="item.columnDesc"
+            :sortable="item.sort"
+            :width="item.width"
+            :show-overflow-tooltip="item.tooltip"
+            :key="item.columnName"
+          >
+            <template slot-scope="scope">
+              <el-tag
+                :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
+                <span>{{
+                    item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
+                  }}</span>
+              </el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column
+            v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
+            :prop="item.columnName"
+            :label="item.columnDesc"
+            :width="item.width"
+            :key="item.columnName"
+            fixed="right"
+          >
+            <template slot-scope="scope">
+              <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
+                         :type="buttonItem.type"
+                         :size="buttonItem.size"
+                         :style="buttonItem.style"
+                         :key="buttonItem"
+                         v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
+                         :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
+                         @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
+              >{{ buttonItem.name }}
+              </el-button>
+            </template>
+          </el-table-column>
+          <el-table-column
+            v-if="item.columnType == 'text' && executeEval(row,item.expression,true)"
+            :prop="item.columnName"
+            :label="item.columnDesc"
+            :sortable="item.sort"
+            :width="item.width"
+            :show-overflow-tooltip="item.tooltip"
+            :key="item.columnName"
+          >
+            <template slot-scope="scope">
+              <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
+                  scope.row[item.columnName]
+                }}</span>
+            </template>
+          </el-table-column>
+        </template>
       </el-table>
     </el-card>
 
@@ -112,6 +207,7 @@ import {addBizProduct} from "@/api/inout/orderDetailCode";
 import {getInvPreInProduct, getInvPreInProductStock} from "@/api/inventory/invPreInSearch";
 import {getInvPreProduct, getInvPreProductStock} from "@/api/inventory/invPreProduct";
 import {finProductSet} from "@/api/param/systemParamConfig";
+import {executeFuc, getHead} from "@/utils/customConfig";
 
 
 export default {
@@ -172,10 +268,29 @@ export default {
       currentRow: null,
       radioCheck: null,
 
+
+      tableHeader: [],
+      queryList: [],
+      fromList: [],
+
     };
   },
   components: {},
   methods: {
+
+    //界面配置----------------
+    executeFuc(row, type, clickFuc, value) {
+      return executeFuc(this, row, type, clickFuc, value);
+    },
+    executeEval(row, expression, defaultRet) {
+      if (expression) {
+        return eval(expression);
+      }
+      return defaultRet;
+    },
+
+
+
     onReset() {
 
       this.$router.push({
@@ -391,7 +506,16 @@ export default {
   created() {
     this.findBasicProductSet();
     // 加载表格数据
-    this.getList();
+
+    getHead("selectInvProduct", "1").then((re) => {
+      // 处理返回的数据
+      this.tableObj = re.data;
+      this.tableHeader = re.data.tableList;
+      this.queryList = re.data.queryList;
+      this.fromList = re.data.fromList;
+      this.getList();
+    });
+
   }
   ,
 }