Просмотр исходного кода

Merge branch 'master' of http://git.dongkesoft.com:9001/DK-MES-3.0/mes-web

hongxudong 2 лет назад
Родитель
Сommit
1bdcc5c129

+ 5 - 1
src/components-app/business/dk-app-single-dropdown/dk-app-single-dropdown.vue

@@ -129,6 +129,10 @@ export default {
     printType: {
       type: Number,
       default: null
+    },
+    carModelId:{
+      type: Number,
+      default: null
     }
   },
   watch: {
@@ -768,7 +772,7 @@ export default {
 
 
       if (dataSourceCode === 'carrierRange') {// 窑车位置
-        param.carModelId = null
+        param.carModelId = this.carModelId ? this.carModelId : null
         return this.excute(this.$service.commonService, this.$service.commonService.getKilnCarPlace, param)
 
       } else {

+ 34 - 0
src/components/base/edit-table/edit-table.vue

@@ -256,6 +256,29 @@
           </template>
         </vxe-column>
 
+        <!--  主从多选组件-->
+        <vxe-column v-if="colItem.type === 'multiSelect'" :field="colItem.field"
+                    :title="colItem.title?colItem.title:$t(colItem.field)"
+                    :type="colItem.type"
+                    :width="colItem.width?colItem.width:vm.$config.columnWidth"
+                    :min-width="colItem.minWidth?colItem.minWidth:vm.$config.columnWidthMin"
+                    :edit-render="{autofocus: '.vxe-input--inner'}">
+          <template #default="{ row,rowIndex }">
+            {{ row[colItem.field + '_Name'] }}
+          </template>
+          <template #edit="{ row,rowIndex }">
+            <MultiSelect v-model="row[colItem.field]"
+                         main-field="ownerFlag"
+                         :table-flag="true"
+                         @ok="getMultiSelect(Object.assign($event,{row,rowIndex,colItem}))"
+                         :default-value="row[colItem.field + '_Name']"
+                         :title="$t('pdtModelName')"
+                         :fromTitle="$t('staffNames')"
+                         :type="vm.$config.MagnifierType.product"
+            ></MultiSelect>
+          </template>
+        </vxe-column>
+
         <!--   下拉   -->
         <vxe-column v-if="colItem.type === 'select'" :field="colItem.field"
                     :title="colItem.title?colItem.title:$t(colItem.field)"
@@ -1852,6 +1875,17 @@ export default {
       }
     },
     /**
+     * @desc   : 设置主从数据赋值
+     * @author : 周兴
+     * @date   : 2023/5/9 15:53
+     */
+    getMultiSelect(e){
+      if(this.tableData[e.rowIndex]){
+        this.$set(this.tableData[e.rowIndex],e.colItem.field,e.rows)
+        this.$set(this.tableData[e.rowIndex],e.colItem.field + '_Name',e.display)
+      }
+    },
+    /**
      * @desc   : 跳转到下一个可输入单元格
      * @author : 周兴
      * @date   : 2022/4/7 15:36

+ 71 - 40
src/components/business/multi-select/multi-select.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
     <div style="display: flex;align-items: center;">
-      <InputPop ref="input" :value="selectedValue"
-                :clearable="true"  :magnifierFlag="true" readonly @on-clear="clearAll" @on-focus="magnifierClick(true)"
+      <InputPop ref="input" :value="selectedValue" :class="tableFlag?'input-class':''"
+                :clearable="true" :magnifierFlag="true" readonly @on-clear="clearAll" @on-focus="magnifierClick(true)"
                 @on-keydown="handleInputKeydown"/>
       <!--      <div class="close-class" v-if="!readonly && selectedValue && selectedValue.length > 0">-->
       <!--        <Icon slot="prefix" type="ios-close-circle" @click.stop="clearAll"/>-->
@@ -26,7 +26,7 @@
       </BaseIndexButtonGroup>
       <!--      <SearchCond id="search-cond-div" width="780px" v-if="searchCond && searchCond.length > 0" ref="searchCond"-->
       <!--                  v-model="searchCond" :setFlag="false" :searchContent="searchCond" :col-count="4"></SearchCond>-->
-      <SearchCond id="search-cond-div" width="1000px" v-if="searchContent && searchContent.length > 0" ref="searchCond"
+      <SearchCond id="search-cond-div" width="700" v-if="searchContent && searchContent.length > 0" ref="searchCond"
                   v-model="searchCond" :setFlag="false" :searchContent="searchContent" :col-count="4"></SearchCond>
       <DkTable :primaryKey="selectKey" :clear-check-flag="false" ref="table-select" :id="'table-'+$options.name"
                name="table" :data="tableData"
@@ -105,16 +105,6 @@ export default {
       type: String,
       default: ''
     },
-    // 是否需要公司Id
-    cpId: {
-      type: Boolean,
-      default: true
-    },
-    // 是否需要系统id
-    sysId: {
-      type: Boolean,
-      default: true
-    },
     // 比例的字段
     rateField: {
       type: String,
@@ -139,6 +129,11 @@ export default {
     organizationFlag: {
       type: Boolean,
       default: false
+    },
+    // 是否从表格中调用的
+    tableFlag: {
+      type: Boolean,
+      default: false
     }
   },
   data() {
@@ -197,9 +192,14 @@ export default {
       //赋默认值
       this.setDefaultValue();
     },
+    value(n, o) {
+      if (!n || n.length == 0) {
+        this.selectedValue = null;
+      }
+    },
     orderId(n, o) {
       // 如果Id改变,需要重新查询数据库
-      this.getDataTable();
+      // this.getDataTable();
     }
   },
   methods: {
@@ -326,7 +326,6 @@ export default {
     clear() {
       this.searchList = {}
       this.searchTable = {}
-      this.getDataTable() // 重新查询
     },
     /**
      * @desc   : 获取表格数据
@@ -341,16 +340,7 @@ export default {
       // 不分页 todo
       param.pageSize = this.$config.maxPageSize;
       param.currentPage = 1
-      // 如果是结算方式或仓库,需要赋值给|| this.type === this.$config.MagnifierType.warehouse
-      if (this.type === this.$config.MagnifierType.settlementType) {
-        param['orgId'] = this.orderId;
-        if (this.organizationFlag) {
-          param.organizationFlag = true;
-        }
-      } else {
-        param['orderId'] = this.orderId
-      }
-
+      param.ftyId = this.$store.state.user.ftyId
       // 拼接外部传入的其他参数otherCondition
       if (this.otherCondition) {
         param = Object.assign(param, this.otherCondition)
@@ -367,6 +357,7 @@ export default {
             arr = res.data;
           }
           this.tableData = arr;
+          console.log('value', this.value)
           // 根据传入的数据进行数据处理
           if (this.value && this.value.length > 0) {
             let filterRows = []
@@ -442,10 +433,10 @@ export default {
         return;
       }
       //打开从第一页开始
-      this.$refs['table-select'].pageInfo.currentPage = 1
+      // this.$refs['table-select'].pageInfo.currentPage = 1
       this.showModal = true
       if (this.model) {
-        this.$refs['table-select'].batchKeys = [this.model]
+        // this.$refs['table-select'].batchKeys = [this.model]
         this.batchKeysPage = [this.model]
       }
     },
@@ -458,10 +449,10 @@ export default {
       this.clearFlag = true;
       this.showClear = false
       this.selectedValue = ''
-      this.$refs['table-select'].clearBatchKeys() //清空选择
+      this.$refs['table-select']?.clearBatchKeys() //清空选择
       this.batchKeysPage = null
       this.batchRowsPage = null;
-      this.$emit('ok', []);
+      this.$emit('ok', {rows: [], display: null});
     },
     /**
      * @desc   : modal变化事件
@@ -470,7 +461,7 @@ export default {
      */
     onVisibleChange(val) {
       if (val) {
-        this.getDataTable()
+        // this.getDataTable()
       } else {
         this.searchTable = {} // 关闭选择画面需要清空条件
       }
@@ -523,7 +514,12 @@ export default {
         //光标切回select组件
         this.$refs['input'].$refs.input.focus = true
         this.clearFlag = false;
-        this.$emit('ok', this.batchRowsPage)
+        console.log('bb3', this.batchRowsPage)
+        this.$emit('ok', {rows: this.batchRowsPage, display: this.selectedValue})
+        // 清空查询条件
+        this.$refs['searchCond'].clearCondition();
+        // 清空表格
+        this.tableData = []
       }
     },
     /**
@@ -537,24 +533,27 @@ export default {
         // 把选择的数据显示出来,主的显示在第一位
         let display = ''
         let list = this.batchRowsPage.filter(it => it[this.mainField])
-        if (list && list.length > 0) {
-          display = list[0][this.selectLabel] + '【主】'
-        }
+        // if (list && list.length > 0) {
+        //   display = list[0][this.selectLabel] + '【主】'
+        // }
         // 从业务数据
-        list = this.batchRowsPage.filter(it => !it[this.mainField])
-        if (list && list.length > 0) {
+        let subList = this.batchRowsPage.filter(it => !it[this.mainField])
+        if (subList && subList.length > 0) {
+          display = list[0][this.selectLabel] + '【主】'
           display += ',';
-          list.forEach(it => {
+          subList.forEach(it => {
             display += it[this.selectLabel] + ','
           })
           display = display.substring(0, display.length - 1)
+        } else {
+          display = list[0][this.selectLabel]
         }
         this.selectedValue = display;
       } else {
         this.selectedValue = null;
       }
       if (!isShowOkEventFlag) {
-        this.$emit('ok', this.batchRowsPage)
+        this.$emit('ok', {rows: this.batchRowsPage, display: this.selectedValue})
       }
     },
     /**
@@ -563,6 +562,10 @@ export default {
      * @date   : 2022/3/7 15:43
      */
     cancel() {
+      // 清空查询条件
+      this.$refs['searchCond'].clearCondition();
+      // 清空表格
+      this.tableData = []
       this.showModal = false
     },
     /**
@@ -620,7 +623,7 @@ export default {
      */
     setDefaultValue() {
       if (this.defaultValue) {
-        this.selectedValue = this.defaultValue + '【主】'
+        this.selectedValue = this.defaultValue
       }
     },
     /**
@@ -645,6 +648,29 @@ export default {
           {field: 'ownerFlag', width: '40', type: 'switch', disabled: false},
         ]
       }
+      // 产品
+      else if (self.type === this.$config.MagnifierType.product) {
+        self.service = this.$service.commonService
+        self.methodsNameDetail = 'getModelProductByPage'
+        // 查询条件
+        self.searchContent = [
+          {
+            valueFormat: {code: 'modelCode'},
+          },
+          {
+            valueFormat: {code: 'modelName'},
+          },
+        ]
+        self.selectKey = 'modelId'
+        self.selectLabel = 'modelName'
+        self.columns = [
+          {field: 'modelCode', width: '150'},
+          {field: 'modelName', width: '150'},
+          {field: 'categoryName', width: '150'},
+          {field: 'ownerFlag', width: '100', type: 'switch', disabled: false},
+          {field: 'remarks', width: 'auto'},
+        ]
+      }
       // 部门
       else if (self.type === self.$config.MagnifierType.organization) {
         self.service = this.$service.commonService
@@ -740,7 +766,7 @@ export default {
     this.setDefaultValue();
   },
   mounted() {
-    this.getDataTable()
+    // this.getDataTable()
   }
 }
 </script>
@@ -769,6 +795,11 @@ export default {
   padding-right: 20px !important;
 }
 
+.input-class {
+  height: 26px;
+  line-height: 26px;
+  padding-top: 1px;
+}
 
 </style>
 

+ 1 - 2
src/components/business/select-magnifier/select-magnifier.vue

@@ -280,7 +280,6 @@ export default {
       this.$emit('on-change', this.options)
     },
     displayText(n, o) {
-      console.log('n3444',n)
       this.selectedValue = n;
     },
     value(n, o) {
@@ -1231,7 +1230,7 @@ export default {
         ]
         self.modalWidth = 600
         self.colCount = 2
-        self.selectKey = 'itemId'
+        self.selectKey = 'productId'
         self.selectLabel = 'pdtBarcode'
         self.columns = [
           {field: 'pdtBarcode', width: 'auto'},

+ 1 - 0
src/components/sub/xm-select/index.vue

@@ -335,6 +335,7 @@ export default {
   display: block !important;
   overflow: hidden !important;
   font-size: 12px !important;
+  padding: 0 7px !important;
 }
 
 .more-class {

+ 1 - 0
src/config/index.js

@@ -68,6 +68,7 @@ export default {
   maxlength: 100, // 文本类可输入的最大长度
   exportMax: 100000,// 导出的最大值
   pageSize: 10, // 一页数量
+  maxPageSize:10000000,// 最大数量
   fontSize: 12, // 字体大小
   maxTagCount: 2, // 下拉显示的默认数量
   maxDiscount: 999.99,//折扣的最大值

+ 2 - 1
src/locale/lang/zh-CN.js

@@ -444,6 +444,7 @@ export const columns = {
   logoName: '商标名称',
   logoPaths: '商标图案',
   brandId: '品牌名称',
+  brandCodeLogo: '商品品牌',
 
   colourCode: '釉色编号',
   colourName: '釉色名称',
@@ -987,7 +988,7 @@ export const columns = {
   data: '值',
   paperType: '纸张类型',
   paperDirection: '纸张方向',
-
+  ownerFlag:'默认',
   web: 'WEB端',
   app: '移动端',
 }

+ 3 - 2
src/view-app/app/piecework-procedure/climb-kiln/index.vue

@@ -46,7 +46,7 @@
         @mutiClose="mutiClose('register')" :ids="[formData.stationId]"
         @mutiCommit="mutiCommit($event, 'register')"></dk-app-single-dropdown>
       <!--   窑车位置 -->
-      <dk-app-single-dropdown typeName="carrierRange" :show="showCarrierRange" @mutiClose="mutiClose('carrierRange')"
+      <dk-app-single-dropdown typeName="carrierRange" :show="showCarrierRange" @mutiClose="mutiClose('carrierRange')" :carModelId="formData.modelId"
         @mutiCommit="mutiCommit($event, 'carrierRange')"></dk-app-single-dropdown>
     </div>
     <!-- 加载页面   -->
@@ -249,7 +249,8 @@ export default {
       this.excute(this.$service.collectService, this.$service.collectService.checkCarCode, params, "queryCarCode", true).then(res => {
         if (res.code === this.$config.SUCCESS_CODE) {
           this.formData.kilnId = res.data.carrier.kilnId
-
+          this.formData.modelId = res.data.carrier.modelId
+          
           this.setFocus('prodUser')
         }
       })

+ 230 - 65
src/view/mst/model/index.vue

@@ -35,7 +35,8 @@
                :height="tableHeight" primaryKey="modelId"
                :choose-flag="false"
                @pageChange="pageSizeChange">
-        <DkTableColumn field="modelCode" type="link" @on-link="handleLink(Object.assign($event,{button:'edit'}))"></DkTableColumn>
+        <DkTableColumn field="modelCode" type="link"
+                       @on-link="handleLink(Object.assign($event,{button:'edit'}))"></DkTableColumn>
         <DkTableColumn field="modelName"></DkTableColumn>
         <DkTableColumn field="modelCategoryName"></DkTableColumn>
         <DkTableColumn field="limitLoadQty" v-if="this.formType==$config.formCode.modelCarrier"></DkTableColumn>
@@ -59,7 +60,8 @@
                :choose-flag="false" @current-change="changeCurrent"
                @pageChange="pageSizeChange"
       >
-        <DkTableColumn field="modelCode"  type="link" @on-link="handleLink(Object.assign($event,{button:'edit'}))"></DkTableColumn>
+        <DkTableColumn field="modelCode" type="link"
+                       @on-link="handleLink(Object.assign($event,{button:'edit'}))"></DkTableColumn>
         <DkTableColumn field="modelName"></DkTableColumn>
         <DkTableColumn field="modelCategoryName"></DkTableColumn>
         <DkTableColumn field="limitLoadQty" v-if="this.formType==$config.formCode.modelCarrier"></DkTableColumn>
@@ -99,7 +101,8 @@
               :label-max-words="this.formType==$config.formCode.modelCarrier?5:4">
         <!--  型号编码  -->
         <DkFormItem prop="modelCode" required>
-          <InputPop v-model="formData.modelCode" ref="modelCode" :readonly="formType==$config.formCode.modelMould && modalParams.button == $config.formMode.edit"/>
+          <InputPop v-model="formData.modelCode" ref="modelCode"
+                    :readonly="formType==$config.formCode.modelMould && modalParams.button == $config.formMode.edit"/>
         </DkFormItem>
         <!--  型号名称  -->
         <DkFormItem prop="modelName" required>
@@ -119,7 +122,7 @@
         <!--   限制装载量    -->
         <DkFormItem prop="limitLoadQty" :required="true" :data-type="$config.dataType.number"
                     v-if="this.formType==$config.formCode.modelCarrier">
-          <InputNumberPop v-model="formData.limitLoadQty" :min=0 :clearable="false" />
+          <InputNumberPop v-model="formData.limitLoadQty" :min=0 :clearable="false"/>
         </DkFormItem>
         <DkFormItem v-if="this.formType==$config.formCode.modelCarrier">
           <span style="line-height: 20px;">{{$t('W_152')}}</span>
@@ -139,6 +142,18 @@
                           :min="1" :max="9+1"/>
         </DkFormItem>
 
+        <!--  产品型号 -->
+        <DkFormItem prop="outputList" v-if="formType==$config.formCode.modelMould && formData.outputQty == 1"
+                    :required="formType==$config.formCode.modelMould && formData.outputQty == 1"
+                    :data-type="$config.dataType.array" :label="$t('pdtModelId')">
+          <MultiSelect v-model="formData.outputList"
+                       main-field="ownerFlag"
+                       :default-value="formData.outputListName"
+                       @ok="getPdtModel"
+                       :type="this.$config.MagnifierType.product"
+          ></MultiSelect>
+        </DkFormItem>
+
         <!--   备注     -->
         <DkFormItem prop="remarks">
           <InputPop v-model="formData.remarks" textareaFlag/>
@@ -151,47 +166,59 @@
       </DkForm>
 
       <!--      产出型号-->
-      <div style="padding: 10px 17px 10px 10px; height: 100px" v-if="formType==$config.formCode.modelMould">
+      <div style="padding: 10px 17px 10px 10px; height: 150px"
+           v-if="formType==$config.formCode.modelMould && formData.outputQty > 1">
+        <EditTable ref="pdtModelTable" :data="moreOutputList"
+                   :columns="outputColumn"
+                   :height="140"
+                   :show-setting-flag="false"
+                   :freeze="false"
+                   enabled-repeat-id="modelId"
+                   controlId="pdtModelId"
+                   :enabledRepeat="false"
+                   :operate-flag="false"
+                   @chooseData="chooseData"
+        ></EditTable>
         <!--        <EditTable ref="pdtModelTable" :data="formData.outputList" :show-setting-flag="false"-->
         <!--                   :enabledRepeat=true :enabled-repeat-id="'userId'" :add-flag="false" :delete-flag="false"-->
         <!--                   :columns="outputColumn" :height="100"></EditTable>-->
 
-        <DkSplit v-model="formSplit">
-          <!--左侧产品型号信息-->
-          <EditTable slot="left" ref="pdtModelTable" :data="formData.outputList"
-                     :columns="outputColumn"
-                     :height="100"
-                     :show-setting-flag="false"
-                     :freeze="false"
-                     enabled-repeat-id="modelId"
-                     controlId="pdtModelId"
-                     :enabledRepeat="false"
-                     :readonly="modalParams.button == $config.formMode.edit"
-                     @current-change="changeCurrentPdt"
-                     @chooseData="chooseData"
-                     @addRow="addPdtRow"
-                     @delRow="delPdtRow"
-                     :add-flag="false" :delete-flag="false"
-          ></EditTable>
-          <!--右侧可变更产品型号信息-->
-          <EditTable slot="right" ref="repPdtModelTable"
-                     :columns="repOutputColumn"
-                     :height="100"
-                     :show-setting-flag="false"
-                     enabledRepeatId="modelId"
-                     :enabledRepeat="false"
-                     :freeze="false"
-                     :readonly="modalParams.button == $config.formMode.edit"
-                     controlId="repPdtModelId"
-                     :data="formData.outputList
-                                  &&formData.outputList.length>0
-                                  &&formData.outputList[modelMouldIndex]
-                                  ?formData.outputList[modelMouldIndex].repPdtModelList:[]"
-                     @chooseData="chooseRepPdtModel"
-                     @onBatchChoose="chooseRepPdtModel"
-                     @delRow="delRepPdtModelRow"
-          ></EditTable>
-        </DkSplit>
+        <!--        <DkSplit v-model="formSplit">-->
+        <!--          &lt;!&ndash;左侧产品型号信息&ndash;&gt;-->
+        <!--          <EditTable slot="left" ref="pdtModelTable" :data="formData.outputList"-->
+        <!--                     :columns="outputColumn"-->
+        <!--                     :height="100"-->
+        <!--                     :show-setting-flag="false"-->
+        <!--                     :freeze="false"-->
+        <!--                     enabled-repeat-id="modelId"-->
+        <!--                     controlId="pdtModelId"-->
+        <!--                     :enabledRepeat="false"-->
+        <!--                     :readonly="modalParams.button == $config.formMode.edit"-->
+        <!--                     @current-change="changeCurrentPdt"-->
+        <!--                     @chooseData="chooseData"-->
+        <!--                     @addRow="addPdtRow"-->
+        <!--                     @delRow="delPdtRow"-->
+        <!--                     :add-flag="false" :delete-flag="false"-->
+        <!--          ></EditTable>-->
+        <!--          &lt;!&ndash;右侧可变更产品型号信息&ndash;&gt;-->
+        <!--          <EditTable slot="right" ref="repPdtModelTable"-->
+        <!--                     :columns="repOutputColumn"-->
+        <!--                     :height="100"-->
+        <!--                     :show-setting-flag="false"-->
+        <!--                     enabledRepeatId="modelId"-->
+        <!--                     :enabledRepeat="false"-->
+        <!--                     :freeze="false"-->
+        <!--                     :readonly="modalParams.button == $config.formMode.edit"-->
+        <!--                     controlId="repPdtModelId"-->
+        <!--                     :data="formData.outputList-->
+        <!--                                  &&formData.outputList.length>0-->
+        <!--                                  &&formData.outputList[modelMouldIndex]-->
+        <!--                                  ?formData.outputList[modelMouldIndex].repPdtModelList:[]"-->
+        <!--                     @chooseData="chooseRepPdtModel"-->
+        <!--                     @onBatchChoose="chooseRepPdtModel"-->
+        <!--                     @delRow="delRepPdtModelRow"-->
+        <!--          ></EditTable>-->
+        <!--        </DkSplit>-->
       </div>
       <!--   装载区域    -->
       <div style="padding: 10px 17px 10px 10px" v-if="this.formType==$config.formCode.modelCarrier">
@@ -239,9 +266,11 @@ export default {
         stdNum: 1,
         outputQty: 1,
         outputList: [],
+        outputListName: '',
         rangeList: [],//装载区域
         delRangeList: [],//删除数据库中装载区域集合
       },
+      moreOutputList: [],// 多个
       // 模具分类数据
       categoryList: [],
       // 查询条件
@@ -258,13 +287,10 @@ export default {
       modelMouldIndex: -1, // 产品型号当前行号
       outputColumn: [
         {
-          field: 'pdtModelName',
+          field: 'pdtModelId',
           controlId: 'pdtModelId',
-          width: 150,
-          type: 'tableSelect',
-          param: () => {
-            return {}
-          },
+          width: 'auto',
+          type: 'multiSelect',
           sortBoolean: false,
           dataType: self.$config.tableSelectType.product,
           fieldUpdate: self.$updateColumns.modelChooseMould,
@@ -303,6 +329,20 @@ export default {
   methods: {
     // region 一览界面操作
     /**
+     * @desc   : 给产品型号赋值
+     * @author : 周兴
+     * @date   : 2023/5/9 15:10
+     */
+    getPdtModel({rows, display}) {
+      if(rows && rows.length > 0){
+        this.formData.outputList = rows
+        this.formData.outputListName = display;
+      }else{
+        this.formData.outputList = []
+        this.formData.outputListName = null;
+      }
+    },
+    /**
      * @desc   : 切换当前行
      * @author : 洪旭东
      * @date   : 2023-02-15 11:42
@@ -540,6 +580,31 @@ export default {
       this.editAddModal = true
     },
     /**
+     * @desc   : 校验数据
+     * @author : 周兴
+     * @date   : 2023/5/9 16:58
+     */
+    validData() {
+      // 如果多个产出数量需要控制是否填上
+      if (this.formData.outputQty > 1) {
+        let table = this.$refs.pdtModelTable.getTableDataFilter();
+        // 判断工种对应的员工信息是否为空
+        for (let index = 0; index < table.length; index++) {
+          let it = table[index]
+          if (!it.pdtModelId || it.pdtModelId.length === 0) {
+            this.$Message.error(this.$t('W_069', {
+              'param': this.$t('sequence') + (index + 1) + this.$t('rowNo') + this.$t('pdtModelName')
+            }))
+            this.setErrToRow(it, this.$t('W_093', {
+              'param': this.$t('pdtModelName')
+            }));// 给行增加错误提示信息
+            return false;
+          }
+        }
+      }
+      return true;
+    },
+    /**
      * @desc   : 给参数赋值
      * @author : 洪旭东
      * @date   : 2023-01-30 08:51
@@ -548,18 +613,48 @@ export default {
       if (this.$refs.editTableRange) {
         //装载区域
         this.formData.rangeList = this.$refs.editTableRange.getTableDataFilter();
-        this.formData.rangeList = this.formData.rangeList.filter(item=>item.rangeNo);
+        this.formData.rangeList = this.formData.rangeList.filter(item => item.rangeNo);
         //删除的装载区域
         this.formData.delRangeList = this.$refs.editTableRange.getDeleteData();
       }
       this.params = {...this.formData}
+      // 单个产出数量
       if (this.params.outputList) {
-        this.params.mouldOutputList = this.params.outputList.filter(f => f.pdtModelId).map(m => {return {
-          pdtModelId: m.pdtModelId,
-          repPdtModelIds: m.repPdtModelList ? m.repPdtModelList.map(mm => mm.repPdtModelId) : []
-        }})
+        this.params.mouldOutputList = []
+        // 设置后台保存需要的参数
+        let filters = this.params.outputList.filter(it => it.ownerFlag);// 主
+        if (filters && filters.length > 0) {
+          let item = {}
+          item.pdtModelId = filters[0].modelId;
+          item.repPdtModelIds = this.params.outputList.filter(it => !it.ownerFlag).map(mm => mm.modelId);
+          this.params.mouldOutputList.push(item);
+        }
+        // this.params.mouldOutputList = this.params.outputList.filter(f => f.pdtModelId).map(m => {
+        //   return {
+        //     pdtModelId: m.pdtModelId,
+        //     repPdtModelIds: m.repPdtModelList ? m.repPdtModelList.map(mm => mm.repPdtModelId) : []
+        //   }
+        // })
         delete this.params.outputList
       }
+      // 多个产出数量
+      if (this.params.outputQty > 1) {
+        this.params.mouldOutputList = []
+        let table = this.$refs.pdtModelTable.getTableDataFilter();
+        if (table && table.length > 0) {
+          let item = null
+          let filters = null
+          table.forEach(it => {
+            item = {}
+            filters = it.pdtModelId.filter(it => it.ownerFlag);// 主
+            if (filters && filters.length > 0) {
+              item.pdtModelId = filters[0].modelId;
+              item.repPdtModelIds = it.pdtModelId.filter(it => !it.ownerFlag).map(mm => mm.modelId);
+              this.params.mouldOutputList.push(item);
+            }
+          })
+        }
+      }
     },
     /**
      * @desc   : 保存方法
@@ -585,10 +680,50 @@ export default {
       this.defPdtModelId = null
       this.defPdtModelName = null
       this.formData.outputList = []
-      this.$refs.formInline.$refs['dk-form'].resetFields()
+      this.$refs.formInline.resetFields();
       this.modelMouldIndex = -1
     },
     /**
+     * @desc   : 设置产品型号的list
+     * @author : 周兴
+     * @date   : 2023/5/10 9:27
+     */
+    setMouldOutputList(outputList, moreFlag) {
+      let list = []
+      let finalList = []
+      if (outputList && outputList.length > 0) {
+        outputList.forEach(it => {
+          list = []
+          // 主
+          list.push({
+            modelId: it.pdtModelId,
+            modelName: it.pdtModelName,
+            ownerFlag: true,
+          })
+          // 从
+          if (it.repPdtModelIds && it.repPdtModelIds.length > 0) {
+            it.repPdtModelIds.forEach((t, index) => {
+              list.push({
+                modelId: t,
+                modelName: it.repPdtModelNames[index],
+                ownerFlag: false,
+              })
+            })
+          }
+          if (moreFlag) {
+            finalList.push({
+              pdtModelId: list
+            })
+          }
+        })
+      }
+      if (moreFlag) {
+        return finalList;
+      } else {
+        return list;
+      }
+    },
+    /**
      * @desc   : 通过id查询
      * @author : 洪旭东
      * @date   : 2023-01-30 08:51
@@ -602,18 +737,48 @@ export default {
           res.data.outputQtyOrigin = res.data.outputQty
           this.formData = res.data
           this.formData.rangeList = res.data.rangeList;
-          for (let it of res.data.mouldOutputList) {
-            it.repPdtModelList = []
-            for (let i = 0; i < it.repPdtModelIds.length; i++) {
-              it.repPdtModelList.push({
-                repPdtModelId: it.repPdtModelIds[i],
-                repPdtModelName: it.repPdtModelNames[i]
-              })
+          // 一个产品型号
+          if (this.formData.outputQty == 1 && res.data.mouldOutputList && res.data.mouldOutputList.length === 1) {
+            let item = res.data.mouldOutputList[0]
+            if (item.repPdtModelNames && item.repPdtModelNames.length > 0) {
+              this.formData.outputListName = item.pdtModelName + '【主】';
+              this.formData.outputListName = this.formData.outputListName + ',' + item.repPdtModelNames.toString();
+            }else{
+              this.formData.outputListName = item.pdtModelName ;
             }
-            delete it.repPdtModelIds
-            delete it.repPdtModelNames
+            // 生产集合数据
+            this.$set(this.formData, 'outputList', this.setMouldOutputList(res.data.mouldOutputList, false))
+          } else if (this.formData.outputQty > 1 && res.data.mouldOutputList && res.data.mouldOutputList.length > 1) {
+            // 多个产品
+            // 生产集合数据
+            this.moreOutputList = this.setMouldOutputList(res.data.mouldOutputList, true)
+            let value = ''
+            res.data.mouldOutputList.forEach((item, index) => {
+              if (item.repPdtModelNames && item.repPdtModelNames.length > 0) {
+                value = item.pdtModelName + '【主】';
+                value = value + ',' + item.repPdtModelNames.toString();
+              } else {
+                value = item.pdtModelName;
+              }
+              if (this.moreOutputList && this.moreOutputList[index]) {
+                this.moreOutputList[index].pdtModelId_Name = value;
+              }
+            })
+            console.log('222', this.formData, this.moreOutputList, res.data.mouldOutputList)
           }
-          this.formData.outputList = res.data.mouldOutputList
+
+          // for (let it of res.data.mouldOutputList) {
+          //   it.repPdtModelList = []
+          //   for (let i = 0; i < it.repPdtModelIds.length; i++) {
+          //     it.repPdtModelList.push({
+          //       repPdtModelId: it.repPdtModelIds[i],
+          //       repPdtModelName: it.repPdtModelNames[i]
+          //     })
+          //   }
+          //   delete it.repPdtModelIds
+          //   delete it.repPdtModelNames
+          // }
+          // this.formData.outputList = res.data.mouldOutputList
         }
 
       })
@@ -700,7 +865,7 @@ export default {
      * @author : 洪旭东
      * @date   : 2023-03-16 09:46
      */
-    stdNumBlur (val) {
+    stdNumBlur(val) {
       if (!parseInt(val)) {
         this.formData.stdNum = 1
       }
@@ -710,7 +875,7 @@ export default {
      * @author : 洪旭东
      * @date   : 2023-04-10 13:45
      */
-    print(){
+    print() {
       this.$refs.printModal.showChooseTemplate = true
     },
     // endregion

+ 93 - 67
src/view/mst/product-logo/index.vue

@@ -21,75 +21,75 @@
 
     <!--  查询条件区域  -->
     <div id="search-cond-div" ref="search-cond-div" style="margin-top: 1px;padding: 0">
-      <SearchCond ref="searchCond" v-model="searchCond"
-                  @collapse-change="collapseChange" :set-flag="false"
-                  :search-content="searchContent"></SearchCond>
+      <SearchCond ref="searchCond" v-model="searchCond" @collapse-change="collapseChange" :set-flag="false"
+        :search-content="searchContent"></SearchCond>
     </div>
-    <div>
-      <DkTable :id="'table-'+$options.name" ref="table-select" :data="tableData"
-               :pageFlag="true"
-               :page-total="pageInfo.total"
-               :current-page="pageInfo.currentPage"
-               :choose-flag="false"
-               :height="this.tableHeight" primaryKey="logoId"
-               @pageChange="pageSizeChange">
-<!--        <vxe-column width="80" class-name="img-column" :title="$t('productLogo')">-->
-<!--          <template #default="{row}">-->
-<!--            <img :src="row.logoPaths" style="width: 26px; height: 26px;"/>-->
-<!--          </template>-->
-<!--        </vxe-column>-->
-        <DkTableColumn field="logoPaths" type="image" width="80"></DkTableColumn>
-        <DkTableColumn field="logoCode" type="link" @on-link="handleLink(Object.assign($event,{button:'edit'}))"></DkTableColumn>
-        <DkTableColumn field="logoName" ></DkTableColumn>
-        <DkTableColumn field="brandName" ></DkTableColumn>
-        <DkTableColumn field="displayNo" ></DkTableColumn>
-        <DkTableColumn field="flgValid" type="switch" @on-switch-change="onSwitchChange"
-                       :switch-disabled="false" ></DkTableColumn>
-        <DkTableColumn field="remarks" width="auto"></DkTableColumn>
-      </DkTable>
+    <div :style="'height: ' + tableHeight + 'px'" class="split-div-class">
+      <DkSplit v-model="split">
+
+        <!-- 左边部分   -->
+        <DkTable slot="left" ref="leftTable" :data="leftData" :height="this.tableHeight" :page-flag="false"
+          :page-total-flag="false" :show-setting-flag="false" :freeze="false" :choose-flag="false"
+          @current-change="currentChangeEvent($event)">
+          <DkTableColumn :title="$t('brandCodeLogo')" field="brandName" width="auto" :filter="false" :sortable="false">
+          </DkTableColumn>
+        </DkTable>
+
+        <DkTable slot="right" :id="'table-' + $options.name" ref="table-select" :data="tableData" :pageFlag="true"
+          :page-total="pageInfo.total" :current-page="pageInfo.currentPage" :choose-flag="false"
+          :height="this.tableHeight" primaryKey="logoId" @pageChange="pageSizeChange">
+          <!--        <vxe-column width="80" class-name="img-column" :title="$t('productLogo')">-->
+          <!--          <template #default="{row}">-->
+          <!--            <img :src="row.logoPaths" style="width: 26px; height: 26px;"/>-->
+          <!--          </template>-->
+          <!--        </vxe-column>-->
+          <DkTableColumn field="logoPaths" type="image" width="80"></DkTableColumn>
+          <DkTableColumn field="logoCode" type="link" @on-link="handleLink(Object.assign($event, { button: 'edit' }))">
+          </DkTableColumn>
+          <DkTableColumn field="logoName"></DkTableColumn>
+          <DkTableColumn field="brandName"></DkTableColumn>
+          <DkTableColumn field="displayNo"></DkTableColumn>
+          <DkTableColumn field="flgValid" type="switch" @on-switch-change="onSwitchChange" :switch-disabled="false">
+          </DkTableColumn>
+          <DkTableColumn field="remarks" width="auto"></DkTableColumn>
+        </DkTable>
+      </DkSplit>
+
+
+
+
     </div>
     <!--新建编辑-->
-    <DkModal
-      :loading="loading"
-      v-model="editAddModal"
-      ref="modal_editAdd"
-      @on-visible-change="handleVisibleModal"
-      @modalOk="save"
-      :saveFlag="true"
-      :title=modalTitle
-    >
+    <DkModal :loading="loading" v-model="editAddModal" ref="modal_editAdd" @on-visible-change="handleVisibleModal"
+      @modalOk="save" :saveFlag="true" :title=modalTitle>
       <DkForm ref="formInline" v-model="formData" :col-count="1">
         <!--   商标代码     -->
-        <DkFormItem prop="logoCode"  :required="true">
-          <InputPop v-model="formData.logoCode" ref="logoCode"/>
+        <DkFormItem prop="logoCode" :required="true">
+          <InputPop v-model="formData.logoCode" ref="logoCode" />
         </DkFormItem>
         <!--    商标名称    -->
-        <DkFormItem prop="logoName"  :required="true">
-          <InputPop v-model="formData.logoName" ref="logoName"/>
+        <DkFormItem prop="logoName" :required="true">
+          <InputPop v-model="formData.logoName" ref="logoName" />
         </DkFormItem>
         <!--    产品品牌    -->
-        <DkFormItem prop="brandId"  :required="true"
-                    :data-type="this.$config.dataType.number">
-          <SelectPop v-model="formData.brandId" ref="brandId" :multiple="false"
-                     :options="brandList"
-                     labelKey="brandName"
-                     valueKey="brandId">
+        <DkFormItem prop="brandId" :required="true" :data-type="this.$config.dataType.number">
+          <SelectPop v-model="formData.brandId" ref="brandId" :multiple="false" :options="brandList" labelKey="brandName"
+            valueKey="brandId">
           </SelectPop>
 
         </DkFormItem>
         <!--    显示顺序    -->
-        <DkFormItem prop="displayNo"  :required="true" :data-type="this.$config.dataType.number">
-          <InputNumberPop v-model="formData.displayNo" ref="displayNo" :min="1" :digits="0"/>
+        <DkFormItem prop="displayNo" :required="true" :data-type="this.$config.dataType.number">
+          <InputNumberPop v-model="formData.displayNo" ref="displayNo" :min="1" :digits="0" />
         </DkFormItem>
         <!--    备注    -->
-        <DkFormItem prop="remarks" >
-          <InputPop v-model="formData.remarks" textareaFlag/>
+        <DkFormItem prop="remarks">
+          <InputPop v-model="formData.remarks" textareaFlag />
         </DkFormItem>
         <!--   商标上传     -->
-        <DkFormItem prop="logoPaths"  >
-          <DkPicWall ref="uploadFile" v-model="formData.logoPaths"
-                     folder="t_product_logo/logo_paths" :accept="this.$config.uploadFileConfig.acceptPicType"
-                     :format="['jpg','jpeg','png']"></DkPicWall>
+        <DkFormItem prop="logoPaths">
+          <DkPicWall ref="uploadFile" v-model="formData.logoPaths" folder="t_product_logo/logo_paths"
+            :accept="this.$config.uploadFileConfig.acceptPicType" :format="['jpg', 'jpeg', 'png']"></DkPicWall>
         </DkFormItem>
       </DkForm>
     </DkModal>
@@ -97,19 +97,21 @@
 </template>
 
 <script>
-import {indexMixin} from '@/mixins'
+import { indexMixin } from '@/mixins'
 
 export default {
   name: 'product-logo',
   mixins: [indexMixin],
   data() {
-    let  self =this
+    let self = this
     return {
+      leftData:[],
+      split: 0.2,// 分区的默认
       editAddModal: false,
       modalTitle: '',//新建编辑弹窗名称
       submitType: '',//新建编辑提交类型
       formData: {
-        logoPaths:[],
+        logoPaths: [],
         logoName: '',
         logoCode: '',
         brandId: null,
@@ -130,6 +132,26 @@ export default {
     }
   },
   methods: {
+
+
+    /**
+       * @desc   : 左侧列表行变化事件
+       * @author : 于继渤
+       * @date   : 2023/5/6 9:23
+       */
+    currentChangeEvent({ row }) {
+      if (row != null) {
+        this.brandId = row.brandId
+        // 导出额外的条件
+        this.exportCondition = { brandId: this.brandId }
+        let params = this.params
+        params.brandId = row.brandId
+        //查询型号类别列表的数据-右侧列表
+        this.searchData(params)
+      }
+    },
+
+
     // region 一览界面操作
     /**
      *   @desc   : switch停用启用
@@ -149,6 +171,7 @@ export default {
      *   @author : 洪旭东
      */
     getData(params) {
+      params.brandId = this.brandId
       // 查询数据
       return this.excute(this.$service.productLogoService, this.$service.productLogoService.selectByCond, params);
     },
@@ -163,7 +186,7 @@ export default {
     clear() {
       this.formData = {
         logoName: '',
-        logoPaths:[],
+        logoPaths: [],
         logoCode: '',
         brandId: '',
         ftyId: null,
@@ -179,7 +202,7 @@ export default {
      *   @author : 洪旭东
      */
     setParams() {
-      this.params = {...this.formData}
+      this.params = { ...this.formData }
     },
     /**
      *   @desc   : 保存数据
@@ -213,7 +236,7 @@ export default {
         // 加载最大序号
         this.getMaxDisplayNo(this.$config.displayNoTable.productLogo);
       }
-      if(type === this.$config.formMode.add || type === this.$config.formMode.edit ){
+      if (type === this.$config.formMode.add || type === this.$config.formMode.edit) {
         this.getBrandList();   // 加载产品品牌
       }
     },
@@ -222,17 +245,18 @@ export default {
      * @author : 夏常明
      * @date   : 2023/1/30 16:37
      */
-    getBrandList(){
+    getBrandList() {
       let params = {
         ftyId: this.$store.state.user.ftyId
       };
-      this.excute(this.$service.commonService, this.$service.commonService.getBrand,params, false).then(res => {//调用api查询方法
+      this.excute(this.$service.commonService, this.$service.commonService.getBrand, params, false).then(res => {//调用api查询方法
         if (res.code === this.$config.SUCCESS_CODE) {
           this.brandList = res.data
+          this.leftData = res.data
         }
       })
     },
-    getCurrentRow(){
+    getCurrentRow() {
 
     }
     ,
@@ -260,16 +284,18 @@ export default {
     detail(id) {
       this.excuteNoParam(this.$service.productLogoService, this.$service.productLogoService.selectById,
         [id], false).then(res => {//调用api查询方法
-        if (res.code === this.$config.SUCCESS_CODE) {
-          this.formData = res.data
-        }
-      })
+          if (res.code === this.$config.SUCCESS_CODE) {
+            this.formData = res.data
+          }
+        })
     },
     // endregion
   },
   created() {
     this.primaryKey = 'logoId'  // 设置主键Id
     this.routeObjName = 'productLogo'  // 设置路由名称
+    this.getBrandList();  
+  //  this.initSearchFlag = false;  // 初始不进行默认查询
   }
 }
 </script>
@@ -277,9 +303,9 @@ export default {
 <style scoped>
 /deep/ .img-column .vxe-cell {
   height: 30px !important;
-  display: flex  !important;
+  display: flex !important;
   justify-content: center !important;
-  align-items: center  !important;
+  align-items: center !important;
   cursor: pointer;
 }
 </style>

+ 3 - 3
src/view/pdm/prod-code-change/index.vue

@@ -56,7 +56,7 @@
     >
       <BaseIndexButtonGroup id="ButtonGroup">
         <template #left>
-          <BaseIndexButton ref="search" name="search" @click="selectProcudt"></BaseIndexButton>
+          <BaseIndexButton ref="searchProcudt" name="search" @click="selectProcudt"></BaseIndexButton>
           <BaseIndexButton :finalFlag="true" ref="clear" name="clear"
                            @click="$refs['searchCond'].clearCondition()"></BaseIndexButton>
         </template>
@@ -166,7 +166,7 @@
           //成型日期
           {
             itemCode: 'moldingDate',
-            valueFormat: { code: 'moldingDate', default: new Date().toDateStr() },
+            valueFormat: { code: 'moldingDate'},
             valueKind: 'DATE',
             clearable: false
           },
@@ -177,7 +177,7 @@
           //产品条码
           {
             itemCode: 'pdtBarcode',
-            valueFormat: { code: 'pdtUniqueId' },
+            valueFormat: { code: 'productId' },
             itemName: 'pdtBarcode',
             valueKind: self.$config.docUserInput.sSearch,//单选/多选放大镜
             magnifierType: self.$config.MagnifierType.getProductModel,

+ 4 - 4
src/view/process/process-flow/index.vue

@@ -72,10 +72,10 @@
         <DkTableColumn field="flgCheckLabel" type="switch"></DkTableColumn>
         <DkTableColumn field="pdtLabelKindsName" :title="$t('pdtLabelKinds')"></DkTableColumn>
         <DkTableColumn field="flgScrap" type="switch" :title="$t('scrapFlg')"></DkTableColumn>
-        <DkTableColumn field="cntPdtModel"></DkTableColumn>
-        <DkTableColumn field="cntCarModel"></DkTableColumn>
-        <DkTableColumn field="cntQuyDefect"></DkTableColumn>
-        <DkTableColumn field="cntJobDefect"></DkTableColumn>
+        <DkTableColumn field="cntPdtModelName" :title="$t('cntPdtModel')"></DkTableColumn>
+        <DkTableColumn field="cntCarModelName" :title="$t('cntCarModel')"></DkTableColumn>
+        <DkTableColumn field="cntQuyDefectName" :title="$t('cntQuyDefect')"></DkTableColumn>
+        <DkTableColumn field="cntJobDefectName" :title="$t('cntJobDefect')"></DkTableColumn>
         <DkTableColumn field="nodeDesc"></DkTableColumn>
         <DkTableColumn field="nodeTypesName" :title="$t('nodeTypes')"></DkTableColumn>
         <DkTableColumn field="techTypeName" :title="$t('techType')"></DkTableColumn>

+ 2 - 1
src/view/report/mould-follow-report/index.vue

@@ -1,4 +1,4 @@
-<!-- @desc:在产品明细表  @auth:姜宁  @time:2023/3/2 17:14 -->
+<!-- @desc:模具跟踪表  @auth:姜宁  @time:2023/3/2 17:14 -->
 <template>
   <div class="main-div">
     <!--加载中-->
@@ -59,6 +59,7 @@
           <DkTableColumn field="perMouldKindName"></DkTableColumn>
           <DkTableColumn field="stdNum" data-type="number"></DkTableColumn>
           <DkTableColumn field="moldedNum" data-type="number"></DkTableColumn>
+          <DkTableColumn field="unusedNum" data-type="number"></DkTableColumn>
           <DkTableColumn field="moldlineCode"></DkTableColumn>
           <DkTableColumn field="mouldItemCode"></DkTableColumn>
 <!--          <DkTableColumn field="operatingInstructions" width="auto"></DkTableColumn>-->

+ 1 - 2
src/view/report/product-follow-report/index.vue

@@ -1,4 +1,4 @@
-<!-- @desc:在产品明细表  @auth:姜宁  @time:2023/3/2 17:14 -->
+<!-- @desc:在产品跟踪表  @auth:姜宁  @time:2023/3/2 17:14 -->
 <template>
   <div class="main-div">
     <!--加载中-->
@@ -66,7 +66,6 @@
           <DkTableColumn field="prodUserCode"></DkTableColumn>
           <DkTableColumn field="opnTime" :title="$t('operationTime')" data-type="dateTime"></DkTableColumn>
           <DkTableColumn field="opCreateUserCode"></DkTableColumn>
-          <DkTableColumn field="opnUserName"></DkTableColumn>
 <!--          <DkTableColumn field="operatingInstructions" width="auto"></DkTableColumn>-->
           <DkTableColumn field="remarks" width="auto"></DkTableColumn>
         </DkTable>