From ef06a897369a84e4c1e3a9d5a8aeea5572d973bd Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期二, 19 三月 2024 18:31:02 +0800
Subject: [PATCH] 生丝定级标准页面接口联调和添加列和列表数据输入的方法修改

---
 src/views/systemSetting/silkStandardSetting/components/silkTableList.vue |   23 
 /dev/null                                                                |  104 --------
 src/components/makepager/TableCommonView.vue                             |  327 +++++++++++++++---------
 vue.config.js                                                            |    5 
 src/views/systemSetting/silkStandardSetting/index.vue                    |  184 ++++++++++++-
 src/api/systemSetting/silkStandardSetting.js                             |   17 +
 src/api/data.js                                                          |   65 ----
 src/views/other/commonDialog/EditDropdownDialog.vue                      |    1 
 8 files changed, 404 insertions(+), 322 deletions(-)

diff --git a/src/api/data.js b/src/api/data.js
index be0d736..deb21f5 100644
--- a/src/api/data.js
+++ b/src/api/data.js
@@ -1,59 +1,14 @@
-// 閲囪喘鐘舵��
-const purchaseStatus=[
-  {
-    name:'宸蹭笅鍗�',
-    id:1,
-  },
-  {
-    name:'鍒拌揣璐ㄦ',
-    id:2,
-  },
-  {
-    name:'宸插叆搴�',
-    id:3,
-  },
-  {
-    name:'宸插畬鎴�',
-    id:4,
-  },
-]
-// 璐ㄦ鍗曠姸鎬�
-const qualityStatus=[
-  {
-    name:'寰呰川妫�',
-    id:1,
-  },
-  {
-    name:'宸插畬鎴�',
-    id:2,
-  }
-]
-// 閫�璐у崟鐘舵��
-const returnedStatus=[
-  {
-    name:'寰呭彂璐�',
-    id:1,
-  },
-  {
-    name:'寰呯鏀�',
-    id:2,
-  },
-  {
-    name:'寰呭彂璐�',
-    id:3,
-  },
-  {
-    name:'宸插畬鎴�',
-    id:4,
-  },
+// 妫�鏌ラ」鐩悕绉�
+const projectOptions = [
+  { id: 1, value: "绾ゅ害鍋忓樊" },
+  { id: 2, value: "浜屾鍙樺寲" },
+  { id: 3, value: "娓呮磥鍒�" },
+  { id: 4, value: "娲佸噣鍒�" },
+  { id: 5, value: "鏈�澶у亸宸�" }
 ]
 
-export const getDataByType = type => {
-  if(type =='purchaseStatus'){
-    return purchaseStatus;
-  }else if(type=='qualityStatus'){
-    return qualityStatus;
-  }else if(type=='returnedStatus'){
-    return returnedStatus;
+export const getDataByType = (type) => {
+  if (type == "projectOptions") {
+    return projectOptions
   }
 }
diff --git a/src/api/supplierManage/supplier.js b/src/api/supplierManage/supplier.js
deleted file mode 100644
index 94cad95..0000000
--- a/src/api/supplierManage/supplier.js
+++ /dev/null
@@ -1,104 +0,0 @@
-import request from "@/common/untils/request.js"
-import axios from "axios"
-
-// 鏈嶅姟鍟嗗垪琛�
-export const getSupplierList = async (data) => {
-  return await axios.get(`/api/s/getSupplierList`, {
-    params: data
-  })
-}
-// 鍒涘缓鏈嶅姟鍟�
-export function createSupplier(data) {
-  return request({
-    url: "/api/s/createSupplier",
-    method: "post",
-    data
-  })
-}
-// 鍒犻櫎鏈嶅姟鍟�
-export function deleteSupplier(data) {
-  return request({
-    url: "/api/s/deleteSupplier",
-    method: "delete",
-    data
-  })
-}
-// 鏇存柊鏈嶅姟鍟�
-export function updateSupplier(data) {
-  return request({
-    url: "/api/s/updateSupplier",
-    method: "put",
-    data
-  })
-}
-//  淇敼鏈嶅姟鍟嗙姸鎬�
-export function changeSupplierStatus(data) {
-  return request({
-    url: "/api/s/changeSupplierStatus",
-    method: "post",
-    data
-  })
-}
-// 鐢╥d鏌ヨ鏈嶅姟鍟�
-export const findSupplier = async (data) => {
-  return await axios.get(`/api/s/findSupplier`, {
-    params: data
-  })
-}
-
-// 鏇存柊鏈嶅姟鍟嗙被鍨�
-export function updateSupplierType(data) {
-  return request({
-    url: "/api/st/updateSupplierType",
-    method: "put",
-    data
-  })
-}
-// 鏈嶅姟鍟嗙被鍨嬪垪琛�
-export const getSupplierTypeList = async (data) => {
-  return await axios.get(`/api/st/getSupplierTypeList`, {
-    params: data
-  })
-}
-
-// 涓婁紶鍚堝悓
-export const createContract = async (data) => {
-  return await axios.post(`/api/con/createContract`, data, {
-    headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" }
-  })
-}
-// 鍒犻櫎鍚堝悓
-export function deleteContract(data) {
-  return request({
-    url: "/api/con/deleteContract",
-    method: "delete",
-    data
-  })
-}
-// 棰勮鍚堝悓
-export const previewContract = async (data) => {
-  return await axios.get(`/api/con/previewContract`, {
-    params: data
-  })
-}
-// 涓嬭浇鍚堝悓
-export const downloadContract = async (data) => {
-  return await axios.get(`/api/con/downloadContract`, {
-    params: data
-  })
-}
-
-// 鏇存柊鎵�灞炶涓�
-export function updateIndustry(data) {
-  return request({
-    url: "/api/i/updateIndustry",
-    method: "put",
-    data
-  })
-}
-// 鎵�灞炶涓氬垪琛�
-export const getIndustryList = async (data) => {
-  return await axios.get(`/api/i/getIndustryList`, {
-    params: data
-  })
-}
diff --git a/src/api/systemSetting/silkStandardSetting.js b/src/api/systemSetting/silkStandardSetting.js
new file mode 100644
index 0000000..1c03b3e
--- /dev/null
+++ b/src/api/systemSetting/silkStandardSetting.js
@@ -0,0 +1,17 @@
+import request from "@/common/untils/request.js"
+
+// 鍒涘缓鏈嶅姟鍟�
+export function getRankStandard() {
+  return request({
+    url: "/api-jl/v1/system/getRankStandard",
+    method: "get"
+  })
+}
+// 鍒涘缓鏈嶅姟鍟�
+export function saveRankStandard(data) {
+  return request({
+    url: "/api-jl/v1/system/saveRankStandard",
+    method: "post",
+    data
+  })
+}
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index 01b1554..50ac390 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -1,121 +1,143 @@
+<!-- eslint-disable vue/no-use-v-if-with-v-for -->
 <template>
-  <div class="table-view">
+  <div class="table-view" v-loading="loading">
     <el-table
       ref="table"
-      :class="tableList.headerColor == 'red' ? 'table-red' : ''"
       border
       :data="tableList.tableInfomation"
       tooltip-effect="dark"
-      style="width: 100%"
       :height="'calc(100% - 0px)'"
       :max-height="tableList.maxHeight"
+      style="width: 100%"
       :lazy="tableList.lazy"
-      size="mini"
+      :show-summary="showSummary.show"
+      :summary-method="getSummaries"
+      :span-method="arraySpanMethod"
       @selection-change="handleSelectionChange"
-      :header-cell-style="{ background: '#f1f3f8', color: '#000009', 'font-size': '14px' }"
-      :highlight-current-row="tableList.highlight"
-      :row-class-name="tableRowClassName"
+      :header-cell-style="{ background: '#f1f3f8', color: '#000009', 'font-size': '12px', 'font-family': 'PingFangSC' }"
+      size="mini"
       @row-click="tableRowClick"
-      :row-key="tableList.key"
-      :default-expand-all="tableList.isDefaultExpandAll"
-      :tree-props="{ children: 'child', hasChildren: 'hasChildren' }"
+      :row-class-name="tableRowClassName"
     >
-      <el-table-column align="center" v-if="tableList.selectBox" type="selection" width="40"> </el-table-column>
+      <el-table-column v-if="selectBox" type="selection" width="40" :selectable="selectable"> </el-table-column>
+      <el-table-column v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50"></el-table-column>
       <el-table-column
-        align="center"
-        v-if="tableList.selectIndex"
-        type="index"
-        label="搴忓彿"
-        width="50"
-        :fixed="tableList.fixed"
+        v-for="(item, i) in tableList.tableColumn"
+        :key="i"
+        :prop="item.prop"
+        :label="item.label"
+        :width="item.width"
+        :min-width="item.min"
+        show-overflow-tooltip
+        :sortable="item.sortable"
+        v-if="item.isShowColumn"
       >
-      </el-table-column>
-      <template v-for="(item, i) in tableList.tableColumn">
-        <el-table-column
-          align="center"
-          :key="i"
-          :prop="item.prop"
-          :label="item.label"
-          :width="item.width"
-          :min-width="item.min"
-          show-overflow-tooltip
-          :sortable="item.sortable"
-          v-if="item.isShowColumn"
-          :fixed="item.fixed"
-        >
-          <template slot-scope="scope">
-            <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
-            <div v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</div>
-            <span v-else-if="item.isTime">{{
-              dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) === "1900-01-01 00:06:26"
-                ? "--"
-                : dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop])
+        <template slot-scope="scope">
+          <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
+          <div v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</div>
+          <span v-else-if="item.isTime">{{
+            dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) === "1900-01-01 00:06:26"
+              ? "--"
+              : dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop])
+          }}</span>
+          <span v-else-if="item.isClick && scope.row[item.prop]" class="sel-name" @click="selNameClick(scope.row)">{{
+            scope.row[item.prop]
+          }}</span>
+          <span v-else-if="item.isFirst">{{ scope.row[item.prop] ? "鏄�" : "鍚�" }}</span>
+          <span
+            v-else-if="item.isSalesLeadClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selSalesLeadClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <span
+            v-else-if="item.isClientClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selClientClick(scope.row)"
+            >{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span
+          >
+          <span
+            v-else-if="item.isContactClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selContactsClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <span
+            v-else-if="item.isMasterClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selMasterClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <span
+            v-else-if="item.isServiceOrder && scope.row[item.prop]"
+            class="sel-name"
+            @click="selServiceOrderClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <span
+            v-else-if="item.isCommonClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selCommonClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <div v-else-if="item.isProductName" class="product-view">
+            <ul v-if="scope.row.products && scope.row.products.length > 0">
+              <li v-for="(item, index) in scope.row.products" :key="index">
+                <div class="name-view">
+                  {{ item.name }}
+                </div>
+              </li>
+            </ul>
+            <div v-else class="no-product">{{ "--" }}</div>
+          </div>
+          <div v-else-if="item.isProductAmount" class="product-view">
+            <ul v-if="scope.row.products && scope.row.products.length > 0">
+              <li v-for="(item, index) in scope.row.products" :key="index">
+                <div class="name-view">
+                  {{ item.amount }}
+                </div>
+              </li>
+            </ul>
+            <div v-else class="no-product">{{ "--" }}</div>
+          </div>
+          <div v-else-if="item.isProductPrice" class="product-view">
+            <ul v-if="scope.row.products && scope.row.products.length > 0">
+              <li v-for="(item, index) in scope.row.products" :key="index">
+                <div class="name-view">
+                  {{ item.price }}
+                </div>
+              </li>
+            </ul>
+            <div v-else class="no-product">{{ "--" }}</div>
+          </div>
+          <div v-else-if="item.isProductTotal" class="product-view">
+            <ul v-if="scope.row.products && scope.row.products.length > 0">
+              <li v-for="(item, index) in scope.row.products" :key="index">
+                <div class="name-view">
+                  {{ item.total }}
+                </div>
+              </li>
+            </ul>
+            <div v-else class="no-product">{{ "--" }}</div>
+          </div>
+          <!-- 璋冪敤鏂规硶鏄剧ず鏂囧瓧 -->
+          <div v-else-if="item.isCallMethod">
+            <span :class="item.isClass ? item.getClassName(scope.row[item.prop], scope.row) : ''">{{
+              item.getCallMethod(scope.row[item.prop], scope.row)
             }}</span>
-            <span
-              v-else-if="item.isClick && scope.row[item.prop]"
-              class="sel-name"
-              @click="selCommonClick(scope.row)"
-              >{{ scope.row[item.prop] }}</span
-            >
-            <span v-else-if="item.isFirst">{{ scope.row[item.prop] ? "鏄�" : "鍚�" }}</span>
-            <span
-              v-else-if="item.isCommonClick && scope.row[item.prop]"
-              class="sel-name"
-              @click="selCommonClick(scope.row)"
-              >{{ scope.row[item.prop] }}</span
-            >
-            <div v-else-if="item.isProductName" class="product-view">
-              <ul v-if="scope.row.products && scope.row.products.length > 0">
-                <li v-for="(item, index) in scope.row.products" :key="index">
-                  <div :class="scope.row.products.length === 1 ? 'name-view no-bottom' : 'name-view'">
-                    {{ item.name }}
-                  </div>
-                </li>
-              </ul>
-              <div v-else class="no-product">{{ "--" }}</div>
-            </div>
-            <div v-else-if="item.isProductAmount" class="product-view">
-              <ul v-if="scope.row.products && scope.row.products.length > 0">
-                <li v-for="(item, index) in scope.row.products" :key="index">
-                  <div :class="scope.row.products.length === 1 ? 'name-view no-bottom' : 'name-view'">
-                    {{ item.amount }}
-                  </div>
-                </li>
-              </ul>
-              <div v-else class="no-product">{{ "--" }}</div>
-            </div>
-            <div v-else-if="item.isProductPrice" class="product-view">
-              <ul v-if="scope.row.products && scope.row.products.length > 0">
-                <li v-for="(item, index) in scope.row.products" :key="index">
-                  <div :class="scope.row.products.length === 1 ? 'name-view no-bottom' : 'name-view'">
-                    {{ item.price }}
-                  </div>
-                </li>
-              </ul>
-              <div v-else class="no-product">{{ "--" }}</div>
-            </div>
-            <div v-else-if="item.isProductTotal" class="product-view">
-              <ul v-if="scope.row.products && scope.row.products.length > 0">
-                <li v-for="(item, index) in scope.row.products" :key="index">
-                  <div :class="scope.row.products.length === 1 ? 'name-view no-bottom' : 'name-view'">
-                    {{ item.total }}
-                  </div>
-                </li>
-              </ul>
-              <div v-else class="no-product">{{ "--" }}</div>
-            </div>
-            <span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span>
-          </template>
-        </el-table-column>
-      </template>
+          </div>
+          <span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span>
+        </template>
+      </el-table-column>
       <slot name="tableButton" />
       <div slot="empty">
         <el-empty description="鏆傛棤鏁版嵁"></el-empty>
       </div>
     </el-table>
+
     <div class="overSpread1" v-show="iscolopen" @click="onMaskClick"></div>
     <div class="styleBtn">
-      <i @click="checkCol()" v-if="colOpenShow" class="label">...</i>
+      <i @click="checkCol()" class="label">...</i>
       <el-checkbox-group v-model="showcol" v-show="iscolopen" class="checkbox-group" @change="selectCheckBoxList">
         <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item">{{ item }} </el-checkbox>
       </el-checkbox-group>
@@ -127,17 +149,18 @@
 export default {
   name: "TableCommonView",
   props: {
+    selectBox: {
+      type: Boolean,
+      default: false
+    },
     tableList: {
       type: Object,
       default: () => {
         return {
-          selectBox: false,
-          selectIndex: false,
-          fixed: false,
+          selectIndex: true,
           tableInfomation: [], // 鎺ュ彛杩斿洖鏁版嵁
           showcol: [],
           allcol: [],
-          highlight: false,
           tableColumn: [
             // table琛ㄥ崟
             { label: "", prop: "", min: 200, tooltip: true }
@@ -145,19 +168,13 @@
         }
       }
     },
-    // 鏄惁鍙互閰嶇疆鍒楄〃 琛ㄥご
-    colOpenShow: {
-      type: Boolean,
-      default: true
-    },
     showSummary: {
       type: Object,
       default: () => {
         return {
           show: false,
           sumProp: [],
-          mergeNumber: 1,
-          totalName: "鏈〉鎬昏"
+          mergeNumber: 1
         }
       }
     },
@@ -167,14 +184,24 @@
       default: () => {
         return {}
       }
+    },
+    loading: {
+      type: Boolean,
+      default: false
+    },
+    selectBoxList: {
+      type: Array,
+      default: () => []
     }
   },
+
   data() {
     return {
       iscolopen: false,
       showcol: []
     }
   },
+  computed: {},
   watch: {
     "tableList.showcol": {
       handler(newVal) {
@@ -183,7 +210,6 @@
       immediate: true
     }
   },
-  computed: {},
   methods: {
     onMaskClick() {
       this.iscolopen = false
@@ -210,10 +236,16 @@
               .querySelector(".el-table__footer")
             var cell = current.rows[0].cells
             for (let i = 0; i < this.showSummary.mergeNumber; i++) {
-              cell[i].style.display = "none"
+              cell[i] && cell[i].style && (cell[i].style.display = "none")
             }
-            cell[this.showSummary.mergeNumber].classList.remove("is-left")
-            cell[this.showSummary.mergeNumber].colSpan = this.showSummary.mergeNumber.toString()
+            if (cell[this.showSummary.mergeNumber]) {
+              if (cell[this.showSummary.mergeNumber].classList) {
+                cell[this.showSummary.mergeNumber].classList.remove("is-left")
+              }
+              if (cell[this.showSummary.mergeNumber].colSpan) {
+                cell[this.showSummary.mergeNumber].colSpan = this.showSummary.mergeNumber.toString()
+              }
+            }
           }
         })
       }
@@ -225,7 +257,7 @@
         const sums = []
         columns.forEach((column, index) => {
           if (index === this.showSummary.mergeNumber) {
-            sums[index] = this.showSummary.totalName
+            sums[index] = "鏈〉鎬昏"
           }
           const values = data.map((item) => Number(item[column.property]))
           if (this.showSummary.sumProp.includes(column.property)) {
@@ -324,9 +356,37 @@
       }
       return fmt
     },
-    // 鍏叡璇︽儏
+    // 鏂板缓缂栬緫閫夋嫨寮圭獥
+    selNameClick(row) {
+      this.$emit("selCommonClick", row)
+    },
+    // 閿�鍞嚎绱�
+    selSalesLeadClick(row) {
+      this.$emit("selSalesLeadClick", row)
+    },
+    // 瀹㈡埛鍚嶇О
+    selClientClick(row) {
+      this.$emit("selClientClick", row)
+    },
+    // 鑱旂郴浜哄鍚�
+    selContactsClick(row) {
+      this.$emit("selContactsClick", row)
+    },
+    // 閿�鍞�诲崟
+    selMasterClick(row) {
+      this.$emit("selMasterClick", row)
+    },
+    // 瀹㈡埛鏈嶅姟鍗�
+    selServiceOrderClick(row) {
+      this.$emit("selServiceOrderClick", row)
+    },
+    // 鍏叡锛堥攢鍞満浼氥�佹姤浠峰崟銆侀攢鍞�诲崟銆侀攢鍞瓙鍗曘�傘�傘�傦級
     selCommonClick(row) {
       this.$emit("selCommonClick", row)
+    },
+    // 琛岀偣鍑�
+    tableRowClick(row, column, event) {
+      this.$emit("tableRowClick", row, column, event)
     },
     // 鍗曢�夎鐩稿叧
     tableRowClassName({ row }) {
@@ -337,8 +397,13 @@
       }
       this.$emit("tableRowClassName", row)
     },
-    tableRowClick(row) {
-      this.$emit("tableRowClick", row)
+    selectable(row) {
+      let list = this.selectBoxList.map((item) => item.number)
+      if (list.findIndex((v) => v == row.number) == -1) {
+        return true
+      } else {
+        return false
+      }
     }
   }
 }
@@ -347,9 +412,6 @@
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
 .table-view {
-  // margin-top: 20px;
-  // margin-right: 10px;
-  // margin-bottom: 40px;
   position: relative;
   height: 100%;
   .blue {
@@ -368,19 +430,22 @@
     margin-left: -10px;
     margin-right: -11px;
     li {
-      height: 57px;
-      line-height: 57px;
+      height: 22px;
+      line-height: 22px;
       .name-view {
         padding-left: 10px;
         border-bottom: 1px solid #ebeef5;
       }
       .no-bottom {
-        border-bottom: 0px;
+        border-bottom: 0;
       }
     }
+    li:last-child .name-view {
+      border-bottom: none;
+    }
     .no-product {
-      height: 57px;
-      line-height: 57px;
+      height: 22px;
+      line-height: 22px;
     }
   }
 }
@@ -409,13 +474,17 @@
   height: 35px;
   text-align: center;
 }
-::v-deep .table-red.el-table th.el-table__cell > .cell {
-  color: red;
-}
+
 ::v-deep {
   .el-table .cell .el-button--text.el-button--small {
     padding: 4px 0;
   }
+}
+
+::v-deep .el-table .el-table__cell {
+  padding: 6px 0 !important;
+  height: 35px;
+  text-align: center;
 }
 
 .overSpread1 {
@@ -435,8 +504,8 @@
   // line-height: 26px;
   // background: #06c062;
   top: 0;
-  right: 2px;
-  z-index: 9999;
+  right: -6px;
+  z-index: 11;
   .label {
     position: absolute;
     top: 6px;
@@ -448,7 +517,7 @@
   }
   .checkbox-group {
     width: 160px;
-    height: 330px;
+    height: 300px;
     overflow: auto;
     display: flex;
     flex-direction: column;
diff --git a/src/views/other/commonDialog/EditDropdownDialog.vue b/src/views/other/commonDialog/EditDropdownDialog.vue
index 61713a6..2abc4e2 100644
--- a/src/views/other/commonDialog/EditDropdownDialog.vue
+++ b/src/views/other/commonDialog/EditDropdownDialog.vue
@@ -211,3 +211,4 @@
   margin-left: 0px;
 }
 </style>
+@/api/systemSetting/supplier
diff --git a/src/views/systemSetting/silkStandardSetting/components/silkTableList.vue b/src/views/systemSetting/silkStandardSetting/components/silkTableList.vue
index 8875782..d900a09 100644
--- a/src/views/systemSetting/silkStandardSetting/components/silkTableList.vue
+++ b/src/views/systemSetting/silkStandardSetting/components/silkTableList.vue
@@ -67,7 +67,7 @@
                       :disabled="!isOperate"
                       @change="
                         (val) => {
-                          commonInputChange(val, item.prop, scope.row, scope)
+                          commonInputChange(val, item.prop, scope)
                         }
                       "
                     ></el-input>
@@ -83,7 +83,7 @@
                           v-for="(item, index) in projectOptions"
                           :key="index"
                           :label="item.value"
-                          :value="item.value"
+                          :value="item.id"
                         >
                         </el-option>
                       </el-select>
@@ -162,6 +162,11 @@
                     "
                   ></el-input-number>
                 </el-form-item>
+                <div v-else-if="item.isCallMethod">
+                  <span :class="item.isClass ? item.getClassName(scope.row[item.prop], scope.row) : ''">{{
+                    item.getCallMethod(scope.row[item.prop], scope.row)
+                  }}</span>
+                </div>
                 <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span>
               </template>
             </el-table-column>
@@ -198,6 +203,7 @@
 
 <script>
 // import { getProductList } from "@/api/common/other"
+import { getDataByType } from "@/api/data"
 export default {
   name: "CommmonFormTableView",
   components: {},
@@ -250,13 +256,7 @@
       productList: [],
       tableList: [],
       projectIndex: 0,
-      projectOptions: [
-        { id: 1, value: "绾ゅ害鍋忓樊" },
-        { id: 2, value: "浜屾鍙樺寲" },
-        { id: 3, value: "娓呮磥鍒�" },
-        { id: 4, value: "娲佸噣鍒�" },
-        { id: 5, value: "鏈�澶у亸宸�" }
-      ]
+      projectOptions: getDataByType("projectOptions")
     }
   },
   created() {
@@ -299,8 +299,8 @@
         this.$emit("addProjectClick")
       }
     },
-    commonInputChange(val, prop, row, scope) {
-      this.$emit("inputContent", val, prop, row, scope)
+    commonInputChange(val, prop, scope) {
+      this.$emit("inputContent", val, prop, scope)
     },
     // 鍒犻櫎
     deleteClick(scope) {
@@ -317,6 +317,7 @@
     // 娣诲姞鍒楀ご閮ㄦ爣棰樿緭鍏�
     addColumnInputChange(val, prop) {
       console.log(val, prop, "娣诲姞鍒楀ご閮ㄦ爣棰樿緭鍏�")
+      this.$emit("addColumnInputChange", val, prop)
     },
     // 鍒犻櫎鍒�
     clearupColumn(prop) {
diff --git a/src/views/systemSetting/silkStandardSetting/index.vue b/src/views/systemSetting/silkStandardSetting/index.vue
index 43383a0..f5a7c22 100644
--- a/src/views/systemSetting/silkStandardSetting/index.vue
+++ b/src/views/systemSetting/silkStandardSetting/index.vue
@@ -5,7 +5,7 @@
         <template slot="leftButton">
           <el-button size="small" type="primary" @click="addBtnClick" :disabled="!isEdit">鏂板</el-button>
           <el-button size="small" type="primary" @click="refreshClick">鍒锋柊</el-button>
-          <el-button size="small" type="primary" @click="printClick">鎵撳嵃</el-button>
+          <el-button size="small" type="primary" @click="printClick" disabled>鎵撳嵃</el-button>
         </template>
       </CommonSearch>
     </div>
@@ -26,6 +26,7 @@
           @deleteClick="clearupProject"
           @addColumnClick="addColumnClick"
           @clearupColumn="clearupColumn"
+          @addColumnInputChange="addColumnInputChange"
         >
         </SilkTableList>
       </div>
@@ -35,6 +36,8 @@
 
 <script>
 import SilkTableList from "@/views/systemSetting/silkStandardSetting/components/silkTableList"
+import { getRankStandard, saveRankStandard } from "@/api/systemSetting/silkStandardSetting"
+import { getDataByType } from "@/api/data"
 export default {
   name: "silkStandardSetting",
   props: {},
@@ -46,29 +49,90 @@
       isEdit: false,
       silkTableList: {},
       tableData: [],
-      tableColumn: [
-        { label: "妫�鏌ラ」鐩悕绉�", prop: "projectName", projectName: true },
-        { label: "寮�濮嬬氦搴�", prop: "start", inputFloat: true },
-        { label: "缁撴潫绾ゅ害", prop: "end", inputFloat: true },
-        { label: "閲庣氦", prop: "price1", inputFloat: true },
-        { label: "澶ч噹", prop: "price2", inputFloat: true },
-        { label: "鐗归噹", prop: "price3", inputFloat: true }
+      defaultColumn: [
+        {
+          label: "妫�鏌ラ」鐩悕绉�",
+          prop: "checkItem",
+          projectName: true,
+          isCallMethod: true,
+          getCallMethod: this.getCheckItemName
+        },
+        { label: "寮�濮嬬氦搴�", prop: "startFineness", inputFloat: true },
+        { label: "缁撴潫绾ゅ害", prop: "endFineness", inputFloat: true },
+        { label: "閲庣氦", prop: "rankA", inputFloat: true },
+        { label: "澶ч噹", prop: "rankB", inputFloat: true },
+        { label: "鐗归噹", prop: "rankC", inputFloat: true }
       ],
+      tableColumn: [],
       columnNum: 0,
       dataObj: {
-        projectName: "",
-        start: 0,
-        end: 0,
-        price1: 0,
-        price2: 0,
-        price3: 0
-      }
+        checkItem: 1,
+        startFineness: 0,
+        endFineness: 0,
+        rankA: 0,
+        rankB: 0,
+        rankC: 0
+      },
+      projectOptions: getDataByType("projectOptions"),
+      rankObj: {},
+      columnInputList: [],
+      dynamicsRanks: []
     }
   },
   created() {
     this.setTableForm()
+    this.getData()
   },
   methods: {
+    // 鑾峰彇鏁版嵁
+    getData() {
+      getRankStandard().then((res) => {
+        console.log(res)
+        if (res.code === 200) {
+          if (res.data.length > 0) {
+            this.tableData = []
+            this.tableColumn = this.defaultColumn
+            this.columnDataProcess(res.data[0].dynamicsRanks)
+            this.rankObj = {}
+            this.allDataProcess(res.data)
+          }
+        }
+      })
+    },
+    // 鏁翠綋鏁版嵁澶勭悊
+    allDataProcess(dataList) {
+      let rankList = dataList.map((ite) => {
+        for (let i = 0; i < ite.dynamicsRanks.length; i++) {
+          this.$set(this.rankObj, ite.dynamicsRanks[i].rankProp, ite.dynamicsRanks[i].rankValue)
+          this.$set(this.dataObj, ite.dynamicsRanks[i].rankProp, 0)
+        }
+        return {
+          ...ite,
+          ...this.rankObj
+        }
+      })
+      this.tableData = rankList || []
+      this.silkTableList.tableData = this.tableData
+    },
+    // 鍒椾俊鎭暟鎹鐞�
+    columnDataProcess(data) {
+      this.columnInputList = data.map((ite) => {
+        return { ...ite }
+      })
+      let list = data.map((item) => {
+        return {
+          label: item.rankName,
+          prop: item.rankProp,
+          inputFloat: true
+        }
+      })
+      this.columnNum = list.length + 1
+      for (let j = 0; j < list.length; j++) {
+        this.tableColumn.splice(2, 0, list[j])
+      }
+      console.log(this.tableColumn)
+      this.silkTableList.tableColumn = this.tableColumn
+    },
     setTableForm() {
       this.silkTableList = {
         tableData: this.tableData,
@@ -85,12 +149,33 @@
       this.tableData.push(this.dataObj)
     },
     // 鍒锋柊
-    refreshClick() {},
+    refreshClick() {
+      this.getData()
+    },
     // 鎵撳嵃
     printClick() {},
     // 鍒楄〃杈撳叆鍥炶皟
-    inputContent(val, prop, row) {
-      console.log(val, prop, row)
+    inputContent(val, prop, scope) {
+      console.log(val, prop, scope)
+      let list = this.tableData.map((item, index) => {
+        let dynamicsRanks = this.columnInputList.map((ite) => {
+          if (ite.rankProp == prop) {
+            ite.rankValue = val
+          }
+          return {
+            ...ite
+          }
+        })
+        if (index === scope.$index) {
+          item[prop] = val
+          item.dynamicsRanks = dynamicsRanks
+        }
+        return {
+          ...item
+        }
+      })
+      console.log(list)
+      this.tableData = list
     },
     // 鍒犻櫎
     clearupProject(data, index) {
@@ -100,15 +185,53 @@
     // 淇濆瓨缂栬緫鎸夐挳鍒囨崲
     editSaveClick() {
       this.isEdit = !this.isEdit
+      if (!this.isEdit) {
+        let params = this.saveParam()
+        saveRankStandard({
+          rankStandard: params
+        }).then((res) => {
+          console.log(res)
+          if (res.code == 200) {
+            this.$message.success("淇濆瓨鎴愬姛")
+            this.getData()
+          }
+        })
+      }
+    },
+    saveParam() {
+      let saveList = this.tableData.map((item) => {
+        return {
+          checkItem: item.checkItem,
+          dynamicsRanks: item.dynamicsRanks,
+          endFineness: item.endFineness,
+          lineId: item.lineId || "",
+          rankA: item.rankA,
+          rankB: item.rankB,
+          rankC: item.rankC,
+          startFineness: item.startFineness
+        }
+      })
+      return saveList
     },
     // 娣诲姞鍒�
     addColumnClick() {
-      let propStr = "trends" + this.columnNum
+      let propStr = "prop" + this.columnNum
       this.tableColumn.splice(2, 0, { label: "", prop: propStr, inputFloat: true, addColumn: true })
       this.$set(this.dataObj, propStr, 0)
-      console.log(this.tableColumn)
+      this.$set(this.rankObj, propStr, 0)
+      console.log(this.columnInputList)
+      this.columnInputList.push({ rankProp: propStr, rankName: "", rankValue: 0 })
+      console.log(this.tableColumn, this.dataObj, "32323", this.columnInputList)
       this.silkTableList.tableColumn = this.tableColumn
       this.columnNum += 1
+      let allList = this.tableData.map((item) => {
+        return {
+          ...item,
+          [propStr]: 0
+        }
+      })
+      this.tableData = allList
+      this.silkTableList.tableData = allList
     },
     // 鍒犻櫎鍒�
     clearupColumn(prop) {
@@ -121,6 +244,27 @@
       this.tableColumn.splice(currentIndex, 1)
       this.silkTableList.tableColumn = this.tableColumn
       this.$delete(this.dataObj, prop)
+    },
+    // 鍒楄〃澶磋緭鍏ュ洖璋�
+    addColumnInputChange(val, prop) {
+      console.log(val, prop, this.columnInputList)
+      this.columnInputList.forEach((item) => {
+        if (item.rankProp == prop) {
+          item.rankName = val
+        }
+      })
+      console.log(this.columnInputList, "888")
+    },
+    getCheckItemName(val) {
+      if (val) {
+        for (let i in this.projectOptions) {
+          if (this.projectOptions[i].id == val) {
+            return this.projectOptions[i].value
+          }
+        }
+      } else {
+        return "--"
+      }
     }
   }
 }
diff --git a/vue.config.js b/vue.config.js
index b48fa64..268056c 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -14,10 +14,9 @@
   devServer: {
     proxy: {
       "/api": {
-
         // target: "http://192.168.20.118:8889", // http://192.168.20.119:8002 http://fai365.com:30150/
-        // target: "http://192.168.20.120:8004", 
-        target: "http://192.168.20.119:8004", // http://192.168.20.119:8004 http://fai365.com:30150/
+        // target: "http://192.168.20.120:8004",
+        target: "http://192.168.20.119:8008", // http://192.168.20.119:8004 http://fai365.com:30150/
 
         ws: true,
         changeOrigin: true

--
Gitblit v1.8.0