From 1e9fa82cb2fe2c15f46bd1dd73f5c878c74b83b8 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期四, 04 八月 2022 15:35:50 +0800
Subject: [PATCH] 1.系统多账号登录问题2.采购订单页面样式修改及数据渲染

---
 src/views/zlgl/gxjybz.vue |  326 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 219 insertions(+), 107 deletions(-)

diff --git a/src/views/zlgl/gxjybz.vue b/src/views/zlgl/gxjybz.vue
index a8acd3b..5118d2b 100644
--- a/src/views/zlgl/gxjybz.vue
+++ b/src/views/zlgl/gxjybz.vue
@@ -54,17 +54,17 @@
             label="搴忓彿"
           />
           <el-table-column
-            prop="org_code"
+            prop="code"
             label="鏍囧噯浠g爜"
             sortable="custom"
           />
           <el-table-column
-            prop="org_name"
+            prop="name"
             label="鏍囧噯鍚嶇О"
             sortable="custom"
           />
           <el-table-column
-            prop="description"
+            prop="descr"
             label="鏍囧噯鎻忚堪"
             sortable="custom"
           />
@@ -109,21 +109,29 @@
       :visible.sync="dialogVisible"
       width="800"
       top="15vh"
+      :close-on-click-modal="false"
       @closed="handleClose"
       @close="handleClose"
     >
       <div style="margin-bottom: 10px">
         <i class="el-icon-s-comment" style="color:#42b983;" /> 鏍囧噯淇℃伅锛�
       </div>
-      <el-form ref="dialogForm" style="margin-left: 80px" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
-        <el-form-item label="鏍囧噯缂栫爜" prop="OrgCode">
-          <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 200px" />
+      <el-form
+        ref="dialogForm"
+        style="margin-left: 80px"
+        inline
+        :rules="dialogFormRules"
+        :model="dialogForm"
+        label-width="80px"
+      >
+        <el-form-item label="鏍囧噯缂栫爜" prop="code">
+          <el-input v-model="dialogForm.code" :disabled="operation!=='add'" style="width: 200px" />
         </el-form-item>
-        <el-form-item label="鏍囧噯鍚嶇О" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" style="width: 200px" />
+        <el-form-item label="鏍囧噯鍚嶇О" prop="name">
+          <el-input v-model="dialogForm.name" :disabled="operation==='check'" style="width: 200px" />
         </el-form-item>
         <el-form-item label="鎻忚堪">
-          <el-input v-model="dialogForm.OrgName" type="textarea" style="width: 200px" />
+          <el-input v-model="dialogForm.description" :disabled="operation==='check'" type="textarea" style="width: 200px" />
         </el-form-item>
       </el-form>
       <div style="margin-bottom: 10px">
@@ -145,58 +153,91 @@
           @sort-change="sortChange"
         >
           <el-table-column
-            prop="RowNum"
-            label="搴忓彿"
+            type="index"
             width="100"
           />
           <el-table-column
-            prop="mc"
-            label="妫�楠屾爣鍑嗗悕绉�"
+            prop="code"
+            label="妫�楠屾爣鍑嗙紪鐮�(鍚嶇О)"
           >
             <template slot-scope="{row}">
-              <div v-if="row.isVisible===0">{{ row.mc }}</div>
-              <el-input v-if="row.isVisible===1" v-model="row.mc" />
+              <div v-if="row.isVisible===0" style="display: flex;">
+                <div>{{ row.code }}</div>
+                <div style="margin-left: 10px">{{ row.name }}</div>
+              </div>
+
+              <el-select
+                v-if="row.isVisible===1"
+                v-model="row.code"
+                filterable
+                :popper-append-to-body="false"
+                style="width: 400px;"
+                placeholder="璇烽�夋嫨"
+                @change="val=>changeCode(val,row)"
+              >
+                <el-option
+                  v-for="item in JYSelectArr"
+                  :key="item.code"
+                  :label="item.code+''+item.name"
+                  :value="item.code"
+                />
+              </el-select>
             </template>
           </el-table-column>
+          <!--          <el-table-column-->
+          <!--            prop="name"-->
+          <!--            label="妫�楠屾爣鍑嗗悕绉�"-->
+          <!--          >-->
+          <!--            <template slot-scope="{row}">-->
+          <!--              <div v-if="row.isVisible===0">{{ row.name }}</div>-->
+          <!--              <el-select-->
+          <!--                v-if="row.isVisible===1"-->
+          <!--                v-model="row.name"-->
+          <!--                filterable-->
+          <!--                :popper-append-to-body="false"-->
+          <!--                style="width: 200px;"-->
+          <!--                placeholder="璇烽�夋嫨"-->
+          <!--                @change="val=>changeName(val,row)"-->
+          <!--              >-->
+          <!--                <el-option-->
+          <!--                  v-for="item in JYSelectArr"-->
+          <!--                  :key="item.code"-->
+          <!--                  :label="item.name"-->
+          <!--                  :value="item.code"-->
+          <!--                />-->
+          <!--              </el-select>-->
+          <!--            </template>-->
+          <!--          </el-table-column>-->
           <el-table-column
-            prop="ms"
+            prop="descr"
             label="妫�楠屾弿杩版弿杩�"
           >
             <template slot-scope="{row}">
-              <div v-if="row.isVisible===0">{{ row.ms }}</div>
-              <el-input v-if="row.isVisible===1" v-model="row.ms" />
+              <div v-if="row.isVisible===0">{{ row.descr }}</div>
+              <el-input v-if="row.isVisible===1" v-model="row.descr" />
             </template>
           </el-table-column>
           <el-table-column
+            v-if="operation!=='check'"
             label="鎿嶄綔"
           >
             <template slot-scope="{row}">
               <div class="operationClass">
                 <el-button v-if="row.isVisible===0" type="text" @click="JYedit(row)">缂栬緫</el-button>
                 <el-button v-if="row.isVisible===0" type="text" @click="JYdel(row)">鍒犻櫎</el-button>
-                <el-button v-if="row.isVisible===1" type="text" @click="JYsave(row)">淇濆瓨</el-button>
-                <el-button v-if="row.isVisible===1" type="text" @click="Jycancel(row)">鍙栨秷</el-button>
+                <el-button v-if="row.isVisible===1" type="text" @click="JYsave(row)">纭畾</el-button>
+                <el-button v-if="row.isVisible===1" type="text" @click="JYcancel(row)">鍙栨秷</el-button>
               </div>
             </template>
           </el-table-column>
         </el-table>
       </div>
-      <!--鍒嗛〉-->
-      <!--      <pagination-->
-      <!--        v-show="JYtotal>0"-->
-      <!--        :total="JYtotal"-->
-      <!--        :page.sync="JYfrom.page"-->
-      <!--        :limit.sync="JYfrom.rows"-->
-      <!--        align="right"-->
-      <!--        layout="prev, pager, next,sizes"-->
-      <!--        popper-class="select_bottom"-->
-      <!--        @pagination="getStepCheckItemSelect"-->
-      <!--      />-->
 
       <span slot="footer" class="dialog-footer">
         <div class="footerButton">
-          <el-button @click="dialogVisibleCancel">鍙� 娑�</el-button>
-          <el-button type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>
+          <el-button v-if="operation==='check'" @click="dialogVisibleCancel">杩� 鍥�</el-button>
+          <el-button v-if="operation!=='check'" @click="dialogVisibleCancel">鍙� 娑�</el-button>
+          <el-button v-if="operation!=='check'" type="primary" @click="dialogVisibleConfirm">鎻� 浜�</el-button>
         </div>
       </span>
     </el-dialog>
@@ -205,9 +246,12 @@
 
 <script>
 import Pagination from '@/components/Pagination'
-import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz'
-import { getCookie } from '@/utils/auth'
-import { StepCheckStanedSearch } from '@/api/zlgl'
+import {
+  AddUpdateStepCheckStaned, DeleteStepCheckStaned,
+  EditStepCheckStanedSearch,
+  StepCheckItemSelect,
+  StepCheckStanedSearch
+} from '@/api/zlgl'
 
 const SER_HZ = /^[\u4e00-\u9fa5]+$/
 export default {
@@ -246,61 +290,49 @@
         page: 1, // 绗嚑椤�
         rows: 20 // 姣忛〉澶氬皯鏉�
       },
-      OrgTypeArr: [
-        { label: '宸ュ巶', value: 'F' },
-        { label: '閮ㄩ棬', value: 'D' },
-        { label: '杞﹂棿', value: 'W' },
-        { label: '绉戝', value: 'K' },
-        { label: '鐢熶骇绾�', value: 'L' }
-      ],
-
       total: 10,
       tableData: [],
       dialogVisible: false,
       dialogForm: {
-        OrgType: '',
-        OrgCode: '',
-        OrgName: '',
-        SupUnit: ''// 涓婄骇鍗曚綅
+        code: '', // 宸ュ簭妫�楠屾爣鍑嗙紪鐮�
+        name: '', // 宸ュ簭妫�楠屾爣鍑嗗悕绉�
+        enable: '', // 浼犵┖鍊�
+        description: '' // 宸ュ簭妫�楠屾爣鍑嗘弿杩�
       },
       operation: '',
       dialogFormRules: {
-        OrgType: [
-          { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
-        ],
-        OrgCode: [
+        code: [
           { required: true, validator: validateName, trigger: ['blur', 'change'] }
         ],
-        OrgName: [
+        name: [
           { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
-        ],
-        SupUnit: [
-          { required: true, validator: validateTypeCode, trigger: ['blur', 'change'] }
         ]
       },
-      JYTableData: [
-        { RowNum: 1, mc: 'xxx1', ms: 'aaaa' }
-      ], // 瀵硅瘽妗嗘楠屼俊鎭〃鏍�
-      JYfrom: {
-        page: 1,
-        rows: 10
-      },
-      JYtotal: 10
+      JYTableData: [], // 瀵硅瘽妗嗘楠屼俊鎭〃鏍�
+      JYSelectArr: [], // 妫�楠岄」鐩笅鎷夋暟缁�
+      JYSelectedArr: [] // 宸查�夋楠岄」鐩暟缁�
     }
   },
   created() {
-    this.getStepCheckStanedSearch()
-    this.getStepCheckItemSelect()
+    this.handleRequest()
   },
   mounted() {
     window.addEventListener('resize', this.getHeight)
     this.getHeight()
   },
   methods: {
+    handleRequest() {
+      this.getStepCheckStanedSearch().then(res => {
+        if (res.code === '200') {
+          this.getStepCheckItemSelect()
+        }
+      })
+    },
     async getStepCheckStanedSearch() {
       const res = await StepCheckStanedSearch(this.form)
       this.tableData = res.data
       this.total = res.count
+      return { code: res.code }
     },
     // 鎺掑簭鏀瑰彉鏃�
     sortChange({ column, prop, order }) {
@@ -324,10 +356,9 @@
     },
     // 閲嶇疆
     reset() {
-      this.form.OrgCode = ''
-      this.form.OrgName = ''
-      this.form.OrgType = ''
-      this.form.UserName = ''
+      this.form.stanedcode = ''
+      this.form.stanedname = ''
+      this.form.staneddescr = ''
       this.getStepCheckStanedSearch()
     },
 
@@ -340,17 +371,28 @@
     edit(operation, row) {
       this.operation = operation
       this.dialogVisible = true
-
-      this.$nextTick(() => {
-        this.dialogForm.OrgCode = row.org_code
-        this.dialogForm.OrgName = row.org_name
-        this.dialogForm.SupUnit = row.parent_id
-      })
+      this.getEditStepCheckStanedSearch(row.code)
     },
     // 鏌ョ湅
     check(operation, row) {
       this.operation = operation
       this.dialogVisible = true
+      this.getEditStepCheckStanedSearch(row.code)
+    },
+    async getEditStepCheckStanedSearch(val) {
+      const { data: res } = await EditStepCheckStanedSearch({ defectcode: val })
+      this.dialogForm.code = res.code
+      this.dialogForm.name = res.name
+      this.dialogForm.description = res.description
+      this.JYTableData = res.Data
+      this.JYTableData.forEach(item => {
+        let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+        number = number === 0 ? (10 + Math.random()) : number
+        item.isVisible = 0
+        item.descr = item.stepcheckitem_desc
+        item.number = number
+        this.JYSelectedArr.push(item.code)
+      })
     },
     // 鍒犻櫎鎸夐挳
     async del(row) {
@@ -359,7 +401,7 @@
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        DeleteOrganization({ orgid: row.code }).then(res => {
+        DeleteStepCheckStaned({ stanedcode: row.code }).then(res => {
           if (res.code === '200') {
             this.$message.success('鍒犻櫎鎴愬姛!')
             this.getStepCheckStanedSearch()
@@ -371,10 +413,12 @@
     },
     // 瀵硅瘽妗嗗叧闂簨浠�
     handleClose() {
-      this.dialogForm.OrgType = ''
-      this.dialogForm.OrgCode = ''
-      this.dialogForm.OrgName = ''
-      this.dialogForm.SupUnit = ''
+      this.dialogForm.code = ''
+      this.dialogForm.name = ''
+      this.dialogForm.enable = ''
+      this.dialogForm.description = ''
+      this.JYTableData = []
+      this.JYSelectedArr = []
       this.$refs.dialogForm.clearValidate()
     },
     // 瀵硅瘽妗嗗彇娑�
@@ -385,13 +429,22 @@
     dialogVisibleConfirm() {
       this.$refs.dialogForm.validate(valid => {
         if (valid) {
+          const tableData = []
+          this.JYTableData.forEach((item, index) => {
+            tableData.push({
+              STEPCHECKITEM_SEQ: (index + 1),
+              STEPCHECKITEM_CODE: item.code,
+              STEPCHECKITEM_DESC: item.descr
+            })
+          })
           const data = {
-            OrganCode: this.dialogForm.OrgCode,
-            OrganName: this.dialogForm.OrgName,
-            OperType: this.operation === 'add' ? 'Add' : 'Update',
-            Operator: getCookie('admin')
+            code: this.dialogForm.code,
+            name: this.dialogForm.name,
+            description: this.dialogForm.description,
+            enable: '',
+            Data: tableData
           }
-          AddUpdateOrganization(data).then(res => {
+          AddUpdateStepCheckStaned(this.operation === 'add' ? 'Add' : 'Update', data).then(res => {
             if (res.code === '200') {
               this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
               this.dialogVisible = false
@@ -410,25 +463,41 @@
         this.tableHeight = this.mainHeight - 100
       })
     },
-
-    //  鑾峰彇妫�楠岄」淇℃伅琛�
-    getStepCheckItemSelect() {
-      // let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
-      // number = number === 0 ? (10 + Math.random()) : number
-      this.JYTableData.forEach(item => {
-        item.isVisible = 0
-      })
+    // 鑾峰彇妫�楠岄」鐩笅鎷夊垪琛�
+    async getStepCheckItemSelect() {
+      const { data: res } = await StepCheckItemSelect()
+      this.JYSelectArr = res
     },
+    // 妫�楠屾爣鍑嗙紪鐮佸�兼敼鍙�
+    changeCode(val, row) {
+      row.name = this.JYSelectArr.find(it => it.code === val).name
+      row.descr = this.JYSelectArr.find(it => it.code === val).descr
+    },
+    // 妫�楠屾爣鍑嗗悕绉板�兼敼鍙�
+    // changeName(val, row) {
+    //   row.code = this.JYSelectArr.find(it => it.code === val).code
+    //   row.descr = this.JYSelectArr.find(it => it.code === val).descr
+    // },
     // 妫�楠屾柊澧�
     JYadd() {
+      if (this.JYTableData.length > 0 && this.JYTableData[this.JYTableData.length - 1].isVisible === 1) {
+        return this.$message.info('璇峰厛纭畾鎴栧彇娑堟湰鏉¤褰曪紒')
+      }
+
       let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
       number = number === 0 ? (10 + Math.random()) : number
-      const data = { mc: '', ms: '', isVisible: 1, number }
-      this.JYTableData.unshift(data)
+      const data = { code: '', name: '', descr: '', isVisible: 1, number }
+      this.JYTableData.push(data)
     },
     JYedit(row) {
+      this.JYSelectedArr.forEach((item, index) => {
+        if (item === row.code) {
+          this.JYSelectedArr.splice(index, 1)
+        }
+      })
+
       this.JYTableData.forEach((item, index) => {
-        if (item.mc === row.mc) {
+        if (item.code === row.code) {
           item.isVisible = 1
         }
       })
@@ -439,18 +508,50 @@
           this.JYTableData.splice(index, 1)
         }
       })
-    },
-    JYsave(row) {
-      this.JYTableData.forEach(item => {
-        if (item.number === row.number) {
-          item.isVisible = 0
+
+      this.JYSelectedArr.forEach((item, index) => {
+        if (item === row.code) {
+          this.JYSelectedArr.splice(index, 1)
         }
       })
     },
-    Jycancel(row) {
+    JYsave(row) {
+      if (row.code === '') {
+        return this.$message.info('妫�楠屾爣鍑嗙紪鐮�(鍚嶇О)涓嶈兘涓虹┖锛�')
+      }
+      // if (row.name === '') {
+      //   return this.$message.info('妫�楠屾爣鍑嗗悕绉颁笉鑳戒负绌猴紒')
+      // }
+
+      if (this.JYSelectedArr.find(item => item === row.code) !== undefined) {
+        return this.$message.info('妫�楠屾爣鍑嗙紪鐮�(鍚嶇О)涓嶈兘閲嶅锛�')
+      } else {
+        this.JYSelectedArr.push(row.code)
+      }
+
+      this.JYTableData.forEach((item, index) => {
+        if (item.number === row.number) {
+          item.isVisible = 0
+          this.JYTableData.splice(index, 1, {
+            number: row.number,
+            code: row.code,
+            name: row.name,
+            isVisible: 0,
+            descr: row.descr
+          })
+        }
+      })
+    },
+    JYcancel(row) {
       this.JYTableData.forEach((item, index) => {
         if (item.number === row.number) {
           this.JYTableData.splice(index, 1)
+        }
+      })
+
+      this.JYSelectedArr.forEach((item, index) => {
+        if (item === row.code) {
+          this.JYSelectedArr.splice(index, 1)
         }
       })
     }
@@ -469,9 +570,11 @@
   border: none;
   padding: 0 20px;
 }
+
 ::v-deep .el-button--primary:hover {
   border: none;
 }
+
 ::v-deep .el-button--info {
   height: 30px;
   display: flex;
@@ -531,6 +634,7 @@
   height: 30px;
   line-height: 30px;
 }
+
 ::v-deep .el-input__inner:focus {
   border-color: $main_color;
 }
@@ -607,18 +711,26 @@
   border-color: $main_color;
 }
 
-::v-deep .el-select .el-input__inner:focus{
+::v-deep .el-select .el-input__inner:focus {
   border-color: $main_color;
 }
 
-::v-deep .el-select-dropdown__item.selected{
+::v-deep .el-select-dropdown__item.selected {
   color: $main_color;
 }
-::v-deep .el-checkbox__inner:hover{
+
+::v-deep .el-checkbox__inner:hover {
   border-color: $main_color;
 }
-::v-deep .el-textarea__inner:focus{
+
+::v-deep .el-textarea__inner:focus {
   border-color: $main_color;
 }
 
+::v-deep .el-select__caret {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
 </style>

--
Gitblit v1.9.3