Browse Source

设备产品数据库调整

黄梓星 1 year ago
parent
commit
1c79dc61e0

+ 7 - 0
src/api/purchase/equipmentData.js

@@ -24,4 +24,11 @@ export function addEquipment(data) {
     method: 'post',
     data: data
   })
+}
+// 设备产品数据库详情
+export function getEquipmentDetail(id) {
+  return request({
+    url: `/device/origin/${id}`,
+    method: 'get',
+  })
 }

+ 153 - 16
src/views/purchase/equipmentData/add.vue

@@ -41,13 +41,13 @@
           </el-col>
 
           <el-col :span="1.5">
-            <el-form-item label="价格" prop="price">
-              <el-input clearable :disabled="sonDisable" size="mini" v-model="basicForm.price">
+            <el-form-item label="参考价格" prop="referencePrice">
+              <el-input clearable :disabled="sonDisable" size="mini" v-model="basicForm.referencePrice">
               </el-input>
             </el-form-item>
           </el-col>
 
-          <el-col :span="1.5">
+          <!-- <el-col :span="1.5">
             <el-form-item label="省份" prop="province">
               <el-input clearable :disabled="sonDisable" size="mini" v-model="basicForm.province">
               </el-input>
@@ -73,20 +73,42 @@
               <el-input clearable :disabled="sonDisable" size="mini" v-model="basicForm.afterSalesEngineer">
               </el-input>
             </el-form-item>
-          </el-col>
+          </el-col> -->
+        </el-row>
 
+        <el-row>
           <el-col :span="1.5">
             <el-form-item label="是否项目/厂家年度授权" prop="isProjectOrFactoryEmpower">
               <el-checkbox true-label= '0' false-label= '2' v-model="basicForm.isProjectOrFactoryEmpower"></el-checkbox>
             </el-form-item>
           </el-col>
+        </el-row>
 
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="文件上传" prop="fileIds">
+            <el-upload
+              class="upload-demo"
+              :action="url + basicForm.id"
+              :on-preview="handlePreview"
+              :on-success='handleSuccess'
+              :on-remove="handleRemove"
+              :before-remove="beforeRemove"
+              multiple
+              :limit="1"
+              :on-exceed="handleExceed"
+              :file-list="basicForm.fileIds">
+              <el-button size="small" type="primary">点击上传</el-button>
+              <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
+            </el-upload>
+            </el-form-item>
+          </el-col>
         </el-row>
 
         <el-row>
           <el-col :span="1.5">
             <el-form-item label="参数" prop="parameters">
-              <el-input type="textarea" clearable :disabled="sonDisable" size="mini" v-model="basicForm.parameters">
+              <el-input type="textarea" style="width: 400px" clearable :disabled="sonDisable" size="mini" v-model="basicForm.parameters">
               </el-input>
             </el-form-item>
           </el-col>
@@ -95,7 +117,7 @@
         <el-row>
           <el-col :span="1.5">
             <el-form-item label="备注" prop="remark">
-              <el-input type="textarea" clearable :disabled="sonDisable" size="mini" v-model="basicForm.remark">
+              <el-input type="textarea" style="width: 400px" clearable :disabled="sonDisable" size="mini" v-model="basicForm.remark">
               </el-input>
             </el-form-item>
           </el-col>
@@ -108,13 +130,66 @@
         <el-button type="primary" size="mini"  @click="save" v-if="sonPageStu == 'add' || sonPageStu == 'edit'">保存</el-button>
         <el-button size="mini" plain @click="back">返回</el-button>
       </div>
+
+      <div class="btn_grooup">
+        <span>明细信息</span>
+        <div>
+          <el-button type="primary" size="mini" @click="addLine" v-if="!sonDisable">增行</el-button>
+          <el-button type="primary" size="mini" @click="delLines" v-if="!sonDisable">删行</el-button>
+        </div>
+      </div>
+
+      <ux-grid
+        :data="basicForm.sysMaterialDeviceOriginItemList"
+        border
+        :cell-style="{ borderColor: '#c0c0c0' }"
+        :header-cell-style="{ borderColor: '#c0c0c0' }"
+        class="exporttable"
+        height="410"
+        max-height="410"
+        style="font-size: 12px;"
+        @selection-change="handleSelectionChange"
+        ref="table"
+        show-header-overflow="tooltip"
+        show-overflow="tooltip"
+        keep-source
+        beautifyTable
+        :checkbox-config="{highlight: true, trigger: 'row'}"
+        :edit-config="{trigger: 'click', mode: 'row'}">
+      >
+          <ux-table-column resizable type="checkbox" width="50px" fixed="left"/>
+          <!-- <ux-table-column resizable title="序号" type="index" align="center" width="50px"/> -->
+          <ux-table-column resizable title="省份" align="center"  field="province" edit-render>
+            <template v-slot:edit="scope">
+                <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.province"/>
+            </template>
+          </ux-table-column>
+
+          <ux-table-column resizable title="大区负责人" align="center"  field="largeZoneCommander" edit-render>
+            <template v-slot:edit="scope">
+                <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.largeZoneCommander"/>
+            </template>
+          </ux-table-column>
+
+          <ux-table-column resizable title="业务经理" align="center"  field="serviceManager" edit-render>
+            <template v-slot:edit="scope">
+                <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.serviceManager"/>
+            </template>
+          </ux-table-column>
+
+          <ux-table-column resizable title="售后工程师" align="center"  field="afterSalesEngineer" edit-render>
+            <template v-slot:edit="scope">
+                <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.afterSalesEngineer"/>
+            </template>
+          </ux-table-column>
+      </ux-grid>
     </el-card>
 
   </div>
 </template>
 
 <script>
-import { addEquipment } from '@/api/purchase/equipmentData.js'
+import { addEquipment, getEquipmentDetail } from '@/api/purchase/equipmentData.js'
 export default {
   components: {
   },
@@ -129,22 +204,29 @@ export default {
       sonPageStu: this.pageStu,
       sonDisable: this.disable,
       basicForm: {
+        id: '',
         commonName: '',
         registrationName: '',
         deviceCategory: '',
         factoryName: '',
         model: '',
-        price: '',
+        referencePrice: '',
         parameters: '',
-        province: '',
-        largeZoneCommander: '',
-        serviceManager: '',
+        sysMaterialDeviceOriginItemList: [],
+        fileIds: [],
         isProjectOrFactoryEmpower: '',
-        afterSalesEngineer: '',
         remark: '',
       },
-      options: [{value: 0, label:'已授权'}, {value: 2, label:'未授权'}],
+      sonModal: {
+        province: null,
+        largeZoneCommander: null,
+        serviceManager: null,
+        afterSalesEngineer: null,
+      },
       basicRules: {},
+      ids:[],
+      delDemandItemList:[],
+      url: process.env.VUE_APP_BASE_API + '/device/origin/upload?deviceOriginId='
     }
   },
   created() {
@@ -158,8 +240,12 @@ export default {
     }
   },
   methods: {
-    getDetails() {
-
+    getDetails(row) {
+      getEquipmentDetail(row.id).then(res => {
+        if (res.code === 200) {
+          this.basicForm = res.data
+        }
+      })
     },
     editPage() {},
     async save() {
@@ -174,6 +260,52 @@ export default {
       this.$emit('jugislist', true)
       this.$emit('refresh')
     },
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item =>{
+        return item.id
+      })
+      console.log('选中数组', this.ids)
+    },
+    addLine() {
+      const newLine = {...this.sonModel}
+      this.basicForm.sysMaterialDeviceOriginItemList.push(newLine)
+    },
+    delLines() {
+      let delArr = this.$refs.table.getCheckboxRecords()
+      if (delArr.length !== 0) {
+        delArr.forEach(item => {
+          item.delFlag = '2'
+        })
+        console.log('kk',this.basicForm.sysMaterialDeviceOriginItemList)
+        let delList = []
+        delList = this.basicForm.sysMaterialDeviceOriginItemList.filter(item => {
+          return item.delFlag == '2'
+        })
+        this.basicForm.sysMaterialDeviceOriginItemList = this.basicForm.sysMaterialDeviceOriginItemList.filter(item => {
+          return item.delFlag == '0'
+        })
+        this.delDemandItemList.push(...delList)
+      } else {
+        this.$modal.notifyWarning('请至少选择一条明细!')
+      }
+    },
+    handleRemove(file, fileList) {
+      console.log(file, fileList);
+      this.basicForm.fileIds = []
+    },
+    handlePreview(file) {
+      console.log(file);
+    },
+    handleSuccess(response, file, fileList) {
+      console.log(response)
+      this.basicForm.fileIds = response.data
+    },
+    handleExceed(files, fileList) {
+      this.$message.warning(`当前限制选择1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
+    },
+    beforeRemove(file, fileList) {
+      return this.$confirm(`确定移除 ${ file.name }?`);
+    }
   }
 }
 </script>
@@ -187,5 +319,10 @@ export default {
   position: absolute;
   top: 10px;right: 20px;
 
-}  
+}
+.btn_grooup {
+  margin-bottom: 10px;
+  display: flex;
+  justify-content: space-between;
+}
 </style>

+ 15 - 9
src/views/purchase/equipmentData/index.vue

@@ -53,7 +53,9 @@
           width="100"
           >
           <template slot-scope="scope">
-            <el-button type="text" size="mini" v-if="scope.row.status == '1' && scope.row.flowId" @click="reback(scope.row)">收回</el-button>
+            <!-- <el-button type="text" size="mini" v-if="scope.row.status == '1' && scope.row.flowId" @click="reback(scope.row)">收回</el-button> -->
+            <el-button type="text" size="mini" @click="check(scope.row)">查看</el-button>
+            <el-button type="text" size="mini" @click="delItem(scope.row)">删除</el-button>
           </template>
         </ux-table-column>
       </el-super-ux-table>
@@ -98,7 +100,7 @@
 <script>
 // 导入的token
 import { getToken } from "@/utils/auth";
-import { getEquipmentDataList, downLoadMb } from '@/api/purchase/equipmentData.js'
+import { getEquipmentDataList, downLoadMb} from '@/api/purchase/equipmentData.js'
 export default {
   name: "equipmentData",
   dicts: [],
@@ -146,17 +148,14 @@ export default {
       selectData: [],
       // SearchColumns: SearchColumns,
       TableColumns: [
-        { item: { key: "materialCode", title: "物料编码", width: 150 }, attr: {} },
-        { item: { key: "materialName", title: "物料名称", width: 150 }, attr: {} },
+        { item: { key: "commonName", title: "通用名称", width: 150 }, attr: {} },
+        { item: { key: "registrationName", title: "注册名", width: 150 }, attr: {} },
         { item: { key: "deviceCategory", title: "设备类别", width: 150 }, attr: {} },
         { item: { key: "factoryName", title: "厂家名称", width: 150 }, attr: {} },
         { item: { key: "model", title: "型号", width: 150 }, attr: {} },
-        { item: { key: "price", title: "价格", width: 150 }, attr: {} },
+        { item: { key: "referencePrice", title: "参考价格", width: 150 }, attr: {} },
+        { item: { key: "isProjectOrFactoryEmpower", title: "是否项目/厂家年度授权", width: 150 }, attr: {} },
         { item: { key: "parameters", title: "参数", width: 150 }, attr: {} },
-        { item: { key: "province", title: "省份", width: 150 }, attr: {} },
-        { item: { key: "largeZoneCommander", title: "大区负责人", width: 150 }, attr: {} },
-        { item: { key: "serviceManager", title: "业务经理", width: 150 }, attr: {} },
-        { item: { key: "afterSalesEngineer", title: "售后工程师", width: 150 }, attr: {} },
         { item: { key: "remark", title: "备注", width: 150 }, attr: {} },
       ],
     }
@@ -240,6 +239,13 @@ export default {
       }
       this.useQuery(this.params, this.pageInfo)
     },
+    check(row) {
+      this.isList = false
+      this.page = 'check'
+      this.rowDetail = row
+      this.disable = true
+    },
+    delItem(row) {},
   }
 }
 </script>