Browse Source

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

koushanshan 2 năm trước cách đây
mục cha
commit
cd40117db5
38 tập tin đã thay đổi với 1104 bổ sung549 xóa
  1. 2 0
      src/api/pages/common/common.js
  2. 2 1
      src/api/pages/pdm/carrier-flow.js
  3. 24 0
      src/api/pages/report/kiln-car-status-report.js
  4. 10 6
      src/assets/al-icon/iconfont.css
  5. BIN
      src/assets/al-icon/iconfont.eot
  6. 0 0
      src/assets/al-icon/iconfont.js
  7. 7 0
      src/assets/al-icon/iconfont.json
  8. 2 0
      src/assets/al-icon/iconfont.svg
  9. BIN
      src/assets/al-icon/iconfont.ttf
  10. BIN
      src/assets/al-icon/iconfont.woff
  11. BIN
      src/assets/al-icon/iconfont.woff2
  12. 27 16
      src/components-app/base/dk-app-table-more/dk-app-table-more.vue
  13. 174 168
      src/components-app/base/dk-app-table/dk-app-table.vue
  14. 24 14
      src/components/base/dk-message/index.vue
  15. 29 4
      src/components/base/dk-modal/dk-modal.vue
  16. 8 3
      src/components/base/dk-table/dk-table-column.vue
  17. 4 0
      src/components/base/dk-table/dk-table.vue
  18. 10 10
      src/components/business/print/template.less
  19. 63 83
      src/components/business/print/template.vue
  20. 10 1
      src/config/index.js
  21. 10 1
      src/locale/lang/zh-CN.js
  22. 7 1
      src/mixins/index.js
  23. 96 29
      src/view-app/app/grouting-management/grouting-bind-barcode/index.vue
  24. 163 58
      src/view-app/app/grouting-management/grouting-bind-barcode/product-select-replace.vue
  25. 3 3
      src/view-app/login/app-login.vue
  26. 4 4
      src/view-app/main/index.vue
  27. 4 4
      src/view-app/main/mine.vue
  28. 4 4
      src/view-app/main/other.vue
  29. 4 4
      src/view-app/main/report.vue
  30. 38 27
      src/view/core/system-setting/index.vue
  31. 1 0
      src/view/mst/carr-kiln-car/index.vue
  32. 37 13
      src/view/mst/custom-report/form.vue
  33. 15 12
      src/view/mst/custom-report/report.vue
  34. 93 45
      src/view/mst/dictionary/index.vue
  35. 4 4
      src/view/mst/label-print-layout/index.vue
  36. 8 31
      src/view/mst/label-print-layout/setting.vue
  37. 2 2
      src/view/mst/product-defect/index.vue
  38. 215 1
      src/view/report/kiln-car-status-report/index.vue

+ 2 - 0
src/api/pages/common/common.js

@@ -63,6 +63,8 @@ export default {
     getModelProduct: 'get_model_product_by_page',
     // 获取数据字典
     getDictionaryData:'get_dictionary_data',
+    // 获取数据字典项目
+    getDictionaryItemData:'get_dictionary_item_data',
     // 获取最大窑车序号
     getMaxCarNo:'get_max_carNo',
     // 获取产品位置不分页

+ 2 - 1
src/api/pages/pdm/carrier-flow.js

@@ -8,7 +8,8 @@ export default {
     prefix:'/mdm-server/pdm/carrier_flow/',
     //查询
     search:{key:'/search',url:'/list_by'},
-  }
+  },
+
 }
 
 

+ 24 - 0
src/api/pages/report/kiln-car-status-report.js

@@ -0,0 +1,24 @@
+/**
+ * @desc   : 在产品明细表
+ * @author : 姜宁
+ * @date   : 2023/3/2 17:16
+ */
+export default {
+  reportCarrieFlowService:{
+    prefix:'/report-server/pdm/carrier_flow/',
+    selectCarrierFlow:'select_carrier_flow', //查询总单 item对应的 窑车产品
+    selectProduction:'select_production', //查询总单 item对应的 生产数据
+    selectKlin:'select_klin',//查询窑车编码数据源
+  }
+}
+
+/**
+ * @desc   : 设置路由
+ * @author : 姜宁
+ * @date   : 2023/3/10 13:08
+ */
+export const routeUrl = {
+  KilnCarStatusReport: {
+
+  }
+}

+ 10 - 6
src/assets/al-icon/iconfont.css

@@ -1,11 +1,11 @@
 @font-face {
   font-family: "iconfont"; /* Project id 3389785 */
-  src: url('iconfont.eot?t=1682478244283'); /* IE9 */
-  src: url('iconfont.eot?t=1682478244283#iefix') format('embedded-opentype'), /* IE6-IE8 */
-       url('iconfont.woff2?t=1682478244283') format('woff2'),
-       url('iconfont.woff?t=1682478244283') format('woff'),
-       url('iconfont.ttf?t=1682478244283') format('truetype'),
-       url('iconfont.svg?t=1682478244283#iconfont') format('svg');
+  src: url('iconfont.eot?t=1683179152831'); /* IE9 */
+  src: url('iconfont.eot?t=1683179152831#iefix') format('embedded-opentype'), /* IE6-IE8 */
+       url('iconfont.woff2?t=1683179152831') format('woff2'),
+       url('iconfont.woff?t=1683179152831') format('woff'),
+       url('iconfont.ttf?t=1683179152831') format('truetype'),
+       url('iconfont.svg?t=1683179152831#iconfont') format('svg');
 }
 
 .iconfont {
@@ -16,6 +16,10 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-tiaoxingma:before {
+  content: "\e626";
+}
+
 .icon-max1:before {
   content: "\e6e3";
 }

BIN
src/assets/al-icon/iconfont.eot


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
src/assets/al-icon/iconfont.js


+ 7 - 0
src/assets/al-icon/iconfont.json

@@ -6,6 +6,13 @@
   "description": "",
   "glyphs": [
     {
+      "icon_id": "2736409",
+      "name": "条形码",
+      "font_class": "tiaoxingma",
+      "unicode": "e626",
+      "unicode_decimal": 58918
+    },
+    {
       "icon_id": "32474959",
       "name": "全屏最大化",
       "font_class": "max1",

+ 2 - 0
src/assets/al-icon/iconfont.svg

@@ -14,6 +14,8 @@
     />
       <missing-glyph />
       
+      <glyph glyph-name="tiaoxingma" unicode="&#58918;" d="M910.613 695.812H1024V72.19000000000005H910.613zM540.613 695.812H654V72.19000000000005H540.613zM0 695.812h56.693V72.19000000000005H0zM84.173 695.812h28.347V72.19000000000005H84.173zM144.173 695.812h28.347V72.19000000000005h-28.347zM206.173 695.812h28.347V72.19000000000005h-28.347zM361.653 695.812H390V72.19000000000005h-28.347zM421.653 695.812H450V72.19000000000005h-28.347zM483.653 695.812H512V72.19000000000005h-28.347zM691.653 695.812H720V72.19000000000005h-28.347zM753.653 695.812H782V72.19000000000005h-28.347zM262 695.812h56.693V72.19000000000005H262zM814 695.812h56.693V72.19000000000005H814z"  horiz-adv-x="1024" />
+      
       <glyph glyph-name="max1" unicode="&#59107;" d="M910.827 763v-184c0-11.046-8.954-20-20-20s-20 8.954-20 20V714.716L641.142 485.031c-7.81-7.81-20.474-7.81-28.284 0-7.81 7.81-7.81 20.474 0 28.284l229.686 229.687-135.717-0.002c-11.046 0-20 8.954-20 20s8.954 20 20 20h184c11.046 0 20-8.954 20-20zM113 763v-184c0-11.046 8.954-20 20-20s20 8.954 20 20V714.716l229.685-229.685c7.81-7.81 20.474-7.81 28.284 0 7.81 7.81 7.81 20.474 0 28.284L181.283 743.002 317 743c11.046 0 20 8.954 20 20s-8.954 20-20 20H133c-11.046 0-20-8.954-20-20z m797.827-758.827v184c0 11.046-8.954 20-20 20s-20-8.954-20-20v-135.716L641.142 282.14200000000005c-7.81 7.81-20.474 7.81-28.284 0-7.81-7.81-7.81-20.474 0-28.284L842.544 24.16999999999996l-135.717 0.002c-11.046 0-20-8.954-20-20s8.954-20 20-20h184c11.046 0 20 8.954 20 20z m-797.827 0v184c0 11.046 8.954 20 20 20s20-8.954 20-20v-135.716l229.685 229.685c7.81 7.81 20.474 7.81 28.284 0 7.81-7.81 7.81-20.474 0-28.284L181.283 24.16999999999996 317 24.173000000000002c11.046 0 20-8.954 20-20s-8.954-20-20-20H133c-11.046 0-20 8.954-20 20z"  horiz-adv-x="1024" />
       
       <glyph glyph-name="min" unicode="&#59108;" d="M607 499.173v184c0 11.046 8.954 20 20 20s20-8.954 20-20v-135.716l229.685 229.685c7.81 7.81 20.474 7.81 28.284 0 7.81-7.81 7.81-20.474 0-28.284L675.283 519.1700000000001 811 519.173c11.046 0 20-8.954 20-20s-8.954-20-20-20H627c-11.046 0-20 8.954-20 20z m-190.173 0v184c0 11.046-8.954 20-20 20s-20-8.954-20-20v-135.716L147.142 777.142c-7.81 7.81-20.474 7.81-28.284 0-7.81-7.81-7.81-20.474 0-28.284L348.544 519.1700000000001l-135.717 0.002c-11.046 0-20-8.954-20-20s8.954-20 20-20h184c11.046 0 20 8.954 20 20zM607 268v-184c0-11.046 8.954-20 20-20s20 8.954 20 20V219.716l229.685-229.685c7.81-7.81 20.474-7.81 28.284 0 7.81 7.81 7.81 20.474 0 28.284L675.283 248.00199999999995 811 248c11.046 0 20 8.954 20 20s-8.954 20-20 20H627c-11.046 0-20-8.954-20-20z m-190.173 0v-184c0-11.046-8.954-20-20-20s-20 8.954-20 20V219.716L147.142-9.969000000000051c-7.81-7.81-20.474-7.81-28.284 0-7.81 7.81-7.81 20.474 0 28.284l229.686 229.687-135.717-0.002c-11.046 0-20 8.954-20 20s8.954 20 20 20h184c11.046 0 20-8.954 20-20z"  horiz-adv-x="1024" />

BIN
src/assets/al-icon/iconfont.ttf


BIN
src/assets/al-icon/iconfont.woff


BIN
src/assets/al-icon/iconfont.woff2


+ 27 - 16
src/components-app/base/dk-app-table-more/dk-app-table-more.vue

@@ -8,8 +8,6 @@
         @click="onOpenDetail(tableDataItem, tableDataIndex)"
         style="background: #fff;margin: 10px 10px 10px 10px;border-radius: 7px;  "
         :style="{ boxShadow: (boxShadowFlag ? '2px 2px 5px #e5e5e6' : '') }">
-        <!--        有测拉删除的组件 -->
-
         <div style="display: flex;width: 100%; padding: 10px 10px 10px 10px;">
           <!-- 复选框-->
           <div style="width: 10%;background: white;justify-items: center;align-items: center;display: flex"
@@ -34,7 +32,7 @@
                     @changeBarCode="changeItemBarCode(rowsItem.sidePullKey, tableDataItem, tableDataIndex)"
                     :placeholderFlag="rowsItem.placeholderFlag ? (tableDataItem[rowsItem.fieldKey] ? true : false
                       ) : false" :removeSpacesFlag="rowsItem.removeSpacesFlag"
-                    :readonly="!rowsItem.fieldFlag || (tableDataItem[rowsItem.fieldKey] && rowsItem.readonlyInputFlag)"
+                    :readonly="(!rowsItem.fieldFlag || (tableDataItem[rowsItem.fieldKey] && rowsItem.readonlyInputFlag)) || readonlyAll"
                     v-model="tableDataItem[rowsItem.name]"></dk-app-field>
                 </div>
                 <div v-if="!rowsItem.collapseFlag && rowsItem.fieldCheckBoxFlag" style="padding-top: 10px">
@@ -75,7 +73,9 @@
                 <van-collapse-item title="查看明细" name="1">
                   <div class="app-row " style="display: flow;" v-for="(bomItems, bomIndex) in tableDataItem.bomItems"
                     :key="bomIndex">
-                    <van-swipe-cell :disabled="bomItems.flgBindUnique">
+                    <!-- 成型标识为true  允许绑码标识 true 才能替换 -->
+                    <!-- 左滑替换组件 -->
+                    <van-swipe-cell :disabled="bomItems.flgBindUnique || !bomItems.flgMolding">
                       <div v-for="(rowsBomItem, rowsBomIndex) in rowsBom" :key="rowsBomIndex">
                         <div style="width: 100%;display: flex">
                           <!-- 标题字段-->
@@ -88,7 +88,7 @@
                         </div>
                       </div>
                       <template #right>
-                        <van-button square type="primary" text="替换" @click="replace(bomItems, bomIndex,tableDataIndex)"
+                        <van-button square type="primary" text="替换" @click="replace(bomItems, bomIndex, tableDataIndex)"
                           class="delete-button" />
                       </template>
                     </van-swipe-cell>
@@ -127,6 +127,7 @@ import { appOthers } from "@/locale/lang/zh-CN";
     * collapseFlag : 更多信息标识  true/false 显示/隐藏
     * readonlyInputFlag :动态输入标识  true 关闭   根据fieldKey字段中的值控制只读
     *  emptyValueFlag :空值隐藏属性 true/false  显示/隐藏
+    *   singleFlag:单选标识  默认多选 
     * @author : 于继渤
     * @date   : 2023/3/13 14:29
     */
@@ -146,6 +147,10 @@ export default {
       type: Boolean,
       default: false
     },
+    readonlyAll: {   //全部只读
+      type: Boolean,
+      default: false
+    },
     boxShadowFlag: {
       type: Boolean,
       default: true
@@ -186,14 +191,7 @@ export default {
     },
     tableData: {
       type: Array,
-      default: () => [
-        { storeName: '门店123456789', amount: '1888', target: '2000', rate: '80%' },
-        {
-          storeName: '门店123456789',
-          amount: '1888',
-          target: '2000',
-          rate: '80%'
-        }]
+      default: () => []
     },
     collapseFlag: { //开启更多
       type: Boolean,
@@ -216,7 +214,10 @@ export default {
         username: '李先生'
       },]
     },
-
+    singleFlag: {  //单选标识  默认多选
+      type: Boolean,
+      default: false
+    }
 
   },
   data() {
@@ -287,7 +288,7 @@ export default {
         index: index
       })
     },
-    replace(item, index,parentIndex){
+    replace(item, index, parentIndex) {
       this.$emit("replace", {
         item: item,
         index: index,
@@ -309,6 +310,14 @@ export default {
     },
     //复选框点击事件
     onClickCheckbox(item, index) {
+      if (this.singleFlag) {
+        for (let i = 0; i < this.tableRowData.length; i++) {
+          if (index != i) {
+            this.$set(this.tableRowData[i], 'checked', false)
+          }
+        }
+      }
+
       this.$emit("onClickCheckbox", {
         item: item,
         index: index
@@ -452,10 +461,12 @@ export default {
 .delete-button {
   height: 100%;
 }
+
 .replace-button {
   height: 100%;
-  color:greenyellow;
+  color: greenyellow;
 }
+
 .ellipsis {
   overflow-y: auto;
   /*text-overflow: ellipsis;*/

+ 174 - 168
src/components-app/base/dk-app-table/dk-app-table.vue

@@ -4,7 +4,7 @@
     <!--表的结构是  列的数据   -->
     <div v-if="columns && columns.length > 0">
       <div class="top-data" v-if="imgFlag">
-        <div v-for="(tdItem,tdIndex) in topData" :key="tdIndex" :style="{width: 100/topData.length+'%'}">
+        <div v-for="(tdItem, tdIndex) in topData" :key="tdIndex" :style="{ width: 100 / topData.length + '%' }">
           <div>
             <div v-if="tdItem.type === 'amount'" style="display: flex;align-items: baseline;justify-content: center;">
               <span style="font-size: 12px;">¥</span>
@@ -20,191 +20,181 @@
       <div class="header">
         <div style="width:17px;"></div>
         <div style="width: calc(100% - 17px);display: flex;">
-          <div :style="{width:colItem.width,textAlign:(colItem.align?colItem.align:'center')}"
-               v-for="(colItem,colIndex) in columns" :key="colIndex">{{ colItem.title }}
+          <div :style="{ width: colItem.width, textAlign: (colItem.align ? colItem.align : 'center') }"
+            v-for="(colItem, colIndex) in columns" :key="colIndex">{{ colItem.title }}
           </div>
         </div>
       </div>
 
-      <div v-if="tableData && tableData.length>0" class="data">
-        <div v-for="(tableDataItem,tableDataIndex) in tableData" :key="tableDataIndex"
-             style="display: flex;background: #fff;padding: 0 9px;">
+      <div v-if="tableData && tableData.length > 0" class="data">
+        <div v-for="(tableDataItem, tableDataIndex) in tableData" :key="tableDataIndex"
+          style="display: flex;background: #fff;padding: 0 9px;">
           <div v-if="imgFlag" style="width:17px;position: relative;display: flex;align-items: center;"
-               :style="{borderBottom:(tableDataIndex!==tableData.length-1?1:0)+'px solid #E9F0FE;'}">
-            <img style="position: absolute;width: 20.16px;height: 15.26px;top:8px;left:-9.5px;" v-if="tableDataIndex<=2"
-                 :src="getImg(tableDataIndex)"/>
+            :style="{ borderBottom: (tableDataIndex !== tableData.length - 1 ? 1 : 0) + 'px solid #E9F0FE;' }">
+            <img style="position: absolute;width: 20.16px;height: 15.26px;top:8px;left:-9.5px;" v-if="tableDataIndex <= 2"
+              :src="getImg(tableDataIndex)" />
             <div style="font-family: 'DIN Alternate';font-style: normal;font-weight: 700;font-size: 9px;color: #1B365D;"
-                 v-else>{{ tableDataIndex <= 8 ? ('0' + (tableDataIndex + 1)) : (tableDataIndex + 1) }}
+              v-else>{{ tableDataIndex <= 8 ? ('0' + (tableDataIndex + 1)) : (tableDataIndex + 1) }} </div>
             </div>
-          </div>
-          <div style="width: calc(100%);display: flex;">
-            <div class="cell"
-                 :style="{width:col2Item.width,borderBottom:(tableDataIndex!==tableData.length-1?1:0)+'px solid #E9F0FE',textAlign:(col2Item.align?col2Item.align:'center')}"
-                 v-for="(col2Item,col2Index) in columns" :key="col2Index">
-          <span v-if="col2Item.type === 'amount'" style="display: inline-block;text-align: left;word-break: break-all;">
-            <span style="font-size: 10px;"
-                  v-if="(tableDataItem[col2Item.name] || tableDataItem[col2Item.name] === 0)">¥</span>
-            {{
-              tableDataItem[col2Item.name] ? toThousandCents(tableDataItem[col2Item.name]) : (!col2Item.ifNull ? '0.00' : col2Item.ifNull)
-            }}
-          </span>
-              <span v-else style="display: inline-block;text-align: left;word-break: break-all;">
-            {{
-                  col2Item.before && (tableDataItem[col2Item.name] || tableDataItem[col2Item.name] === 0) ? col2Item.before : ''
-                }}
-            {{
-                  (tableDataItem[col2Item.name] || tableDataItem[col2Item.name] === 0) ? tableDataItem[col2Item.name] : (col2Item.ifNull ? col2Item.ifNull : '')
-                }}
-            {{
-                  col2Item.after && (tableDataItem[col2Item.name] || tableDataItem[col2Item.name] === 0) ? col2Item.after : ''
-                }}
-          </span>
+            <div style="width: calc(100%);display: flex;">
+              <div class="cell"
+                :style="{ width: col2Item.width, borderBottom: (tableDataIndex !== tableData.length - 1 ? 1 : 0) + 'px solid #E9F0FE', textAlign: (col2Item.align ? col2Item.align : 'center') }"
+                v-for="(col2Item, col2Index) in columns" :key="col2Index">
+                <span v-if="col2Item.type === 'amount'"
+                  style="display: inline-block;text-align: left;word-break: break-all;">
+                  <span style="font-size: 10px;"
+                    v-if="(tableDataItem[col2Item.name] || tableDataItem[col2Item.name] === 0)">¥</span>
+                  {{
+                    tableDataItem[col2Item.name] ? toThousandCents(tableDataItem[col2Item.name]) : (!col2Item.ifNull ?
+                      '0.00' : col2Item.ifNull)
+                  }}
+                </span>
+                <span v-else style="display: inline-block;text-align: left;word-break: break-all;">
+                  {{
+                    col2Item.before && (tableDataItem[col2Item.name] || tableDataItem[col2Item.name] === 0) ?
+                    col2Item.before : ''
+                  }}
+                  {{
+                    (tableDataItem[col2Item.name] || tableDataItem[col2Item.name] === 0) ? tableDataItem[col2Item.name] :
+                    (col2Item.ifNull ? col2Item.ifNull : '')
+                  }}
+                  {{
+                    col2Item.after && (tableDataItem[col2Item.name] || tableDataItem[col2Item.name] === 0) ? col2Item.after
+                    : ''
+                  }}
+                </span>
+              </div>
             </div>
           </div>
         </div>
+        <div v-else
+          style="line-height: 100px;color: #95A8CB;width:100%;font-family: 'PingFang SC';font-style: normal;font-weight: 400;font-size: 14px;background:#fff;text-align: center;">
+          <div>{{ $t('appNoData') }}</div>
+        </div>
       </div>
-      <div v-else
-           style="line-height: 100px;color: #95A8CB;width:100%;font-family: 'PingFang SC';font-style: normal;font-weight: 400;font-size: 14px;background:#fff;text-align: center;">
-        <div>{{ $t('appNoData') }}</div>
-      </div>
-    </div>
-    <!--  行的数据  有测拉删除的组件 -->
-    <div v-if="rows && rows.length > 0">
-      <div v-for="(tableDataItem,tableDataIndex) in tableRowData" :key="tableDataIndex"
-           @click="onOpenDetail(tableDataItem,tableDataIndex)"
-           style="background: #fff;margin: 10px 10px 10px 10px;border-radius: 7px;  "
-           :style="{ boxShadow:(boxShadowFlag ? '2px 2px 5px #e5e5e6' :''  )}">
-        <!--        有测拉删除的组件 -->
-        <van-swipe-cell :disabled="disabledSwipe">
-          <div style="display: flex;width: 100%; padding: 10px 10px 10px 10px;">
-            <!-- 复选框-->
-            <div style="width: 10%;background: white;justify-items: center;align-items: center;display: flex" v-if="checkboxFlag">
-              <div style="">
+      <!--  行的数据  有测拉删除的组件 -->
+      <div v-if="rows && rows.length > 0">
+        <div v-for="(tableDataItem, tableDataIndex) in tableRowData" :key="tableDataIndex"
+          @click="onOpenDetail(tableDataItem, tableDataIndex)"
+          style="background: #fff;margin: 10px 10px 10px 10px;border-radius: 7px;  "
+          :style="{ boxShadow: (boxShadowFlag ? '2px 2px 5px #e5e5e6' : '') }">
+          <!--        有测拉删除的组件 -->
+          <van-swipe-cell :disabled="disabledSwipe">
+            <div style="display: flex;width: 100%; padding: 10px 10px 10px 10px;">
+              <!-- 复选框-->
+              <div style="width: 10%;background: white;justify-items: center;align-items: center;display: flex"
+                v-if="checkboxFlag">
+                <div style="">
                   <van-checkbox v-model="tableDataItem.checked" checked-color="#2E406B"
-                                @click="onClickCheckbox(tableDataItem,tableDataIndex)"></van-checkbox>
+                    @click="onClickCheckbox(tableDataItem, tableDataIndex)"></van-checkbox>
 
+                </div>
               </div>
-            </div>
-            <!-- 字段参数值-->
-            <div :style="{width:(checkboxFlag ? '90%' : '100%')} ">
-              <div class="app-row " style="display: flow" v-for="(rowsItem,rowsIndex) in rows" :key="rowsIndex">
-                <div style="width: 100%;display: flex" v-if="!rowsItem.emptyValueFlag || !(tableDataItem[rowsItem.name] == null || tableDataItem[rowsItem.name] == '')">
-                  <div v-if="!rowsItem.collapseFlag  && !rowsItem.sidePullFlag  && !rowsItem.sidePullDateFlag" style="width: 100%">
-                    <!-- 输入框-->
-                    <dk-app-field :focus="true" :label="rowsItem.title" :typeInput="rowsItem.typeInput" :ref="rowsItem.name+''+tableDataIndex"
-                                  :maxlength="rowsItem.maxlength"
-                                  :error="rowsItem.required"
-                                  @changeBarCode="changeItemBarCode(rowsItem.sidePullKey,tableDataItem,tableDataIndex)"
-                                  :placeholderFlag="rowsItem.placeholderFlag  ?  (tableDataItem[rowsItem.fieldKey]? true : false
-                                 ) : false"
-                                  :removeSpacesFlag="rowsItem.removeSpacesFlag"
-                                  :readonly="!rowsItem.fieldFlag || (!tableDataItem[rowsItem.fieldKey] && rowsItem.readonlyInputFlag) "
-                                  v-model="tableDataItem[rowsItem.name]"></dk-app-field>
-                  </div>
-                  <div v-if="!rowsItem.collapseFlag  && rowsItem.fieldCheckBoxFlag" style="padding-top: 10px">
-                    <!-- 复选框-->
-                    <van-checkbox v-model="tableDataItem[rowsItem.name]" checked-color="#2E406B" shape="square"
-                                  @click="onClickCheckbox(tableDataItem,tableDataIndex)"></van-checkbox>
-                  </div>
-                  <!-- 侧拉菜单-->
+              <!-- 字段参数值-->
+              <div :style="{ width: (checkboxFlag ? '90%' : '100%') }">
+                <div class="app-row " style="display: flow" v-for="(rowsItem, rowsIndex) in rows" :key="rowsIndex">
+                  <div style="width: 100%;display: flex"
+                    v-if="!rowsItem.emptyValueFlag || !(tableDataItem[rowsItem.name] == null || tableDataItem[rowsItem.name] == '')">
+                    <div v-if="!rowsItem.collapseFlag && !rowsItem.sidePullFlag && !rowsItem.sidePullDateFlag"
+                      style="width: 100%">
+                      <!-- 输入框-->
+                      <dk-app-field :focus="true" :label="rowsItem.title" :typeInput="rowsItem.typeInput"
+                        :ref="rowsItem.name + '' + tableDataIndex" :maxlength="rowsItem.maxlength" :error="rowsItem.required"
+                        @changeBarCode="changeItemBarCode(rowsItem.sidePullKey, tableDataItem, tableDataIndex)"
+                        :placeholderFlag="rowsItem.placeholderFlag ? (tableDataItem[rowsItem.fieldKey] ? true : false
+                          ) : false" :removeSpacesFlag="rowsItem.removeSpacesFlag"
+                        :readonly="!rowsItem.fieldFlag || (!tableDataItem[rowsItem.fieldKey] && rowsItem.readonlyInputFlag)"
+                        v-model="tableDataItem[rowsItem.name]"></dk-app-field>
+                    </div>
+                    <div v-if="!rowsItem.collapseFlag && rowsItem.fieldCheckBoxFlag" style="padding-top: 10px">
+                      <!-- 复选框-->
+                      <van-checkbox v-model="tableDataItem[rowsItem.name]" checked-color="#2E406B" shape="square"
+                        @click="onClickCheckbox(tableDataItem, tableDataIndex)"></van-checkbox>
+                    </div>
+                    <!-- 侧拉菜单-->
 
-                  <div v-if="!rowsItem.collapseFlag  && rowsItem.sidePullFlag" style="width: 100%">
+                    <div v-if="!rowsItem.collapseFlag && rowsItem.sidePullFlag" style="width: 100%">
 
-                    <dk-app-field
-                      v-model="tableDataItem[rowsItem.name]"
-                      :label="rowsItem.title"
-                      :readonly="true"
-                      @click="openDropdown(rowsItem.sidePullKey,tableDataItem,tableDataIndex)"
-                      placeholderType="choose" :arrow-direction=" !tableDataItem['flgBindUnique'] ?'down':''"
-                      :is-link="!tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']"
-                      :placeholderFlag="!tableDataItem['flgBindUnique']"
-                      :rightIcon="(tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']) ? 'clear' : ''"
-                      @clickRightIcon="clickRightIcon(tableDataItem,tableDataIndex,rowsItem.sidePullKey)"></dk-app-field>
+                      <dk-app-field v-model="tableDataItem[rowsItem.name]" :label="rowsItem.title" :readonly="true"
+                        @click="openDropdown(rowsItem.sidePullKey, tableDataItem, tableDataIndex)" placeholderType="choose"
+                        :arrow-direction="!tableDataItem['flgBindUnique'] ? 'down' : ''"
+                        :is-link="!tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']"
+                        :placeholderFlag="!tableDataItem['flgBindUnique']"
+                        :rightIcon="(tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']) ? 'clear' : ''"
+                        @clickRightIcon="clickRightIcon(tableDataItem, tableDataIndex, rowsItem.sidePullKey)"></dk-app-field>
 
-                  </div>
-                  <!-- 日期选择-->
-                  <div v-if="!rowsItem.collapseFlag  && rowsItem.sidePullDateFlag" style="width: 100%">
-                    <dk-app-field
-                      :value="tableDataItem[rowsItem.name]"
-                      :label="rowsItem.title"
-                      :readonly="true"
-                      @click="showFormingDateClick(rowsItem.sidePullDateKey,tableDataItem,tableDataIndex)"
-                      placeholderType="choose" is-link arrow-direction="down"
-                    />
+                    </div>
+                    <!-- 日期选择-->
+                    <div v-if="!rowsItem.collapseFlag && rowsItem.sidePullDateFlag" style="width: 100%">
+                      <dk-app-field :value="tableDataItem[rowsItem.name]" :label="rowsItem.title" :readonly="true"
+                        @click="showFormingDateClick(rowsItem.sidePullDateKey, tableDataItem, tableDataIndex)"
+                        placeholderType="choose" is-link arrow-direction="down" />
+                    </div>
                   </div>
                 </div>
               </div>
             </div>
-          </div>
-          <!-- 查看更多-->
-          <div v-if="collapseFlag">
-            <div style="display:flex;">
-              <div v-if="checkboxFlag" style="width: 12%;">
-              </div>
-              <div :style="checkboxFlag ? 'width: 88%;' : 'width: 100%;'">
-                <van-collapse v-model="tableDataItem.collapse" accordion>
-                  <van-collapse-item :title="$t('appSeeMore')" name="1">
-                    <div class="app-row " style="display: flow" v-for="(rowsItem,rowsIndex) in rows" :key="rowsIndex">
-                      <div style="width: 100%;display: flex">
-                        <!-- 标题字段-->
-                        <div v-if="rowsItem.collapseFlag  && !rowsItem.sidePullFlag && !rowsItem.sidePullDateFlag" style="width: 100%">
-                          <!-- 输入框-->
-                          <dk-app-field :focus="true" :label="rowsItem.title" :typeInput="rowsItem.typeInput"
-                                        :maxlength="rowsItem.maxlength"
-                                        :removeSpacesFlag="rowsItem.removeSpacesFlag"
-                                        :placeholderFlag="rowsItem.placeholderFlag"
-                                        :readonly="!rowsItem.fieldFlag || !tableDataItem[rowsItem.fieldKey]"
-                                        v-model="tableDataItem[rowsItem.name]"></dk-app-field>
-                        </div>
-                        <!-- 复选框-->
-                        <div v-if="rowsItem.collapseFlag  && rowsItem.fieldCheckBoxFlag" style="padding-top: 10px">
-                          <van-checkbox v-model="tableDataItem[rowsItem.name]" checked-color="#2E406B" shape="square"
-                                        @click="onClickCheckbox(tableDataItem,tableDataIndex)"></van-checkbox>
-                        </div>
-                        <!-- 侧拉菜单-->
-                        <div v-if="rowsItem.collapseFlag  && rowsItem.sidePullFlag" style="width: 100%">
-
-                          <dk-app-field
-                            v-model="tableDataItem[rowsItem.name]"
-                            :label="rowsItem.title"
-                            :readonly="true"
-                            @click="openDropdown(rowsItem.sidePullKey,tableDataItem,tableDataIndex)"
-                            placeholderType="choose"
-                            :arrow-direction=" !tableDataItem['flgBindUnique'] ?'down':''"
-                            :is-link="!tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']"
-                            :placeholderFlag="!tableDataItem['flgBindUnique']"
-                            :rightIcon="(tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']) ? 'clear' : ''"
-                            @clickRightIcon="clickRightIcon(tableDataItem,tableDataIndex,rowsItem.sidePullKey)"></dk-app-field>
-                        </div>
-                        <!-- 日期选择-->
-                        <div v-if="rowsItem.collapseFlag  && rowsItem.sidePullDateFlag" style="width: 100%">
-                          <dk-app-field
-                            :value="tableDataItem[rowsItem.name]"
-                            :label="rowsItem.title"
-                            :readonly="true"
-                            @click="showFormingDateClick(rowsItem.sidePullDateKey,tableDataItem,tableDataIndex)"
-                            placeholderType="choose" :arrow-direction=" !tableDataItem['flgBindUnique'] ?'down':''"
-                            :is-link="!tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']"
-                            :placeholderFlag="!tableDataItem['flgBindUnique']"
-                          />
+            <!-- 查看更多-->
+            <div v-if="collapseFlag">
+              <div style="display:flex;">
+                <div v-if="checkboxFlag" style="width: 12%;">
+                </div>
+                <div :style="checkboxFlag ? 'width: 88%;' : 'width: 100%;'">
+                  <van-collapse v-model="tableDataItem.collapse" accordion>
+                    <van-collapse-item :title="$t('appSeeMore')" name="1">
+                      <div class="app-row " style="display: flow" v-for="(rowsItem, rowsIndex) in rows" :key="rowsIndex">
+                        <div style="width: 100%;display: flex">
+                          <!-- 标题字段-->
+                          <div v-if="rowsItem.collapseFlag && !rowsItem.sidePullFlag && !rowsItem.sidePullDateFlag"
+                            style="width: 100%">
+                            <!-- 输入框-->
+                            <dk-app-field :focus="true" :label="rowsItem.title" :typeInput="rowsItem.typeInput"
+                              :maxlength="rowsItem.maxlength" :removeSpacesFlag="rowsItem.removeSpacesFlag"
+                              :placeholderFlag="rowsItem.placeholderFlag"
+                              :readonly="!rowsItem.fieldFlag || !tableDataItem[rowsItem.fieldKey]"
+                              v-model="tableDataItem[rowsItem.name]"></dk-app-field>
+                          </div>
+                          <!-- 复选框-->
+                          <div v-if="rowsItem.collapseFlag && rowsItem.fieldCheckBoxFlag" style="padding-top: 10px">
+                            <van-checkbox v-model="tableDataItem[rowsItem.name]" checked-color="#2E406B" shape="square"
+                              @click="onClickCheckbox(tableDataItem, tableDataIndex)"></van-checkbox>
+                          </div>
+                          <!-- 侧拉菜单-->
+                          <div v-if="rowsItem.collapseFlag && rowsItem.sidePullFlag" style="width: 100%">
+
+                            <dk-app-field v-model="tableDataItem[rowsItem.name]" :label="rowsItem.title" :readonly="true"
+                              @click="openDropdown(rowsItem.sidePullKey, tableDataItem, tableDataIndex)"
+                              placeholderType="choose" :arrow-direction="!tableDataItem['flgBindUnique'] ? 'down' : ''"
+                              :is-link="!tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']"
+                              :placeholderFlag="!tableDataItem['flgBindUnique']"
+                              :rightIcon="(tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']) ? 'clear' : ''"
+                              @clickRightIcon="clickRightIcon(tableDataItem, tableDataIndex, rowsItem.sidePullKey)"></dk-app-field>
+                          </div>
+                          <!-- 日期选择-->
+                          <div v-if="rowsItem.collapseFlag && rowsItem.sidePullDateFlag" style="width: 100%">
+                            <dk-app-field :value="tableDataItem[rowsItem.name]" :label="rowsItem.title" :readonly="true"
+                              @click="showFormingDateClick(rowsItem.sidePullDateKey, tableDataItem, tableDataIndex)"
+                              placeholderType="choose" :arrow-direction="!tableDataItem['flgBindUnique'] ? 'down' : ''"
+                              :is-link="!tableDataItem[rowsItem.name] && !tableDataItem['flgBindUnique']"
+                              :placeholderFlag="!tableDataItem['flgBindUnique']" />
+                          </div>
                         </div>
                       </div>
-                    </div>
-                  </van-collapse-item>
-                </van-collapse>
+                    </van-collapse-item>
+                  </van-collapse>
+                </div>
               </div>
             </div>
-          </div>
-          <template #right>
-            <van-button square type="danger" text="删除" @click="onDelClick(tableDataItem,tableDataIndex)"
-                        class="delete-button"/>
-          </template>
-        </van-swipe-cell>
+            <template #right>
+              <van-button square type="danger" text="删除" @click="onDelClick(tableDataItem, tableDataIndex)"
+                class="delete-button" />
+            </template>
+          </van-swipe-cell>
+        </div>
       </div>
-    </div>
 
-    <van-empty v-if="tableRowData.length <=0" :description="description"/>
-  </div>
+      <van-empty v-if="tableRowData.length <= 0" :description="description" />
+    </div>
 </template>
 
 <script>
@@ -212,7 +202,7 @@
 import index1 from '@/assets/images/index1.png'
 import index2 from '@/assets/images/index2.png'
 import index3 from '@/assets/images/index3.png'
-import {appOthers} from "@/locale/lang/zh-CN";
+import { appOthers } from "@/locale/lang/zh-CN";
 
 /**
     * @desc   : row 中 rowsItem 里的参数标识  (v-for="(rowsItem,rowsIndex) in rows")
@@ -225,6 +215,7 @@ import {appOthers} from "@/locale/lang/zh-CN";
     * collapseFlag : 更多信息标识  true/false 显示/隐藏
     * readonlyInputFlag :动态输入标识  true 关闭   根据fieldKey字段中的值控制只读
     *  emptyValueFlag :空值隐藏属性 true/false  显示/隐藏
+    *   singleFlag:单选标识  默认多选 
     * @author : 于继渤
     * @date   : 2023/3/13 14:29
     */
@@ -284,7 +275,7 @@ export default {
     tableData: {
       type: Array,
       default: () => [
-        {storeName: '门店123456789', amount: '1888', target: '2000', rate: '80%'},
+        { storeName: '门店123456789', amount: '1888', target: '2000', rate: '80%' },
         {
           storeName: '门店123456789',
           amount: '1888',
@@ -302,7 +293,7 @@ export default {
     },
     tableRowData: {
       type: Array,
-      default: () => [{scancode: '221101001LDQ', state: '库存上线', code: 'B01B06-01', username: '王先生'}, {
+      default: () => [{ scancode: '221101001LDQ', state: '库存上线', code: 'B01B06-01', username: '王先生' }, {
         scancode: '22110005001KJK',
         state: '在产',
         code: 'B01B06-02',
@@ -311,6 +302,12 @@ export default {
     },
 
 
+    singleFlag: {  //单选标识  默认多选
+      type: Boolean,
+      default: false
+    }
+
+
   },
   data() {
     return {
@@ -382,6 +379,13 @@ export default {
     },
     //复选框点击事件
     onClickCheckbox(item, index) {
+      if (this.singleFlag) {
+        for (let i = 0; i < this.tableRowData.length; i++) {
+          if (index != i) {
+            this.$set(this.tableRowData[i], 'checked', false)
+          }
+        }
+      }
       this.$emit("onClickCheckbox", {
         item: item,
         index: index
@@ -445,12 +449,12 @@ export default {
   padding: 10px 0px !important;
 }
 
-.top-data > div:nth-child(n) {
+.top-data>div:nth-child(n) {
   text-align: center;
 
 }
 
-.top-data > div:nth-child(n) > div:nth-child(1) {
+.top-data>div:nth-child(n)>div:nth-child(1) {
   margin-bottom: 5px;
   font-family: 'PingFang HK';
   font-style: normal;
@@ -459,7 +463,7 @@ export default {
   color: #1B365D;
 }
 
-.top-data > div:nth-child(n) > div:nth-child(2) {
+.top-data>div:nth-child(n)>div:nth-child(2) {
   font-family: 'PingFang SC';
   font-style: normal;
   font-weight: 400;
@@ -467,7 +471,7 @@ export default {
   color: #95A8CB;
 }
 
-.top-data > div:nth-child(n+2) {
+.top-data>div:nth-child(n+2) {
   border-left: 1px solid #ABC6CC;
 }
 
@@ -479,7 +483,7 @@ export default {
   padding: 0 9.5px;
 }
 
-.header > div:nth-child(n) {
+.header>div:nth-child(n) {
   font-family: 'PingFang SC';
   font-style: normal;
   font-weight: 400;
@@ -499,9 +503,11 @@ export default {
   justify-content: center;
   align-items: center;
 }
-.van-cell{
+
+.van-cell {
   padding: 4px 0px !important;
 }
+
 .app-row {
   font-family: 'PingFang HK';
   /*font-style: normal;*/

+ 24 - 14
src/components/base/dk-message/index.vue

@@ -1,6 +1,6 @@
 <!-- @desc:Message信息  @auth:周兴  @time:2022/11/15 14:31 -->
 <template>
-  <DkModal ref="modal_message" v-model="visible" width="390" :title="title"
+  <DkModal ref="modal_message" v-model="visible" width="300" :title="title"
            @modalOk="onOk"
            @modalCancel="onCancel"
            @on-cancel="onCancel">
@@ -30,7 +30,7 @@ export default {
       okFunc: () => {
       },//确定回调
       okText: vm.$t('confirm'),
-      cancelText: vm.$t('close'),
+      cancelText: vm.$t('cancel'),
     }
   },
   methods: {
@@ -61,10 +61,27 @@ export default {
           })
         }
 
+        // 查询子模块是否开着
+        let currentModal = null
+        let modalName = ''
+        for (let it of Object.keys(self.$refs)) {
+          // 如果没有放大镜的查询,那么就看这个界面的查询
+          if (it.startsWith('modal_') && self.$refs[it] && self.$refs[it].showModal) {
+            currentModal = self.$refs[it]
+            modalName = it
+            break
+          }
+        }
         // Q:code = 81 查询
         btList.forEach(forIt => {
-          if (code === 18 && forIt.hotKey.toLowerCase() === e.key.toLowerCase()) {
-            e.returnValue = false
+          if (code != 18 || forIt.hotKey.toLowerCase() != e.key.toLowerCase()) return
+          e.returnValue = false
+          // 如果模块开着,在前面加上模块的ref名
+          if (currentModal != null) {
+            if (self.$refs[modalName].$refs[forIt.name]) {
+              self.$refs[modalName].$refs[forIt.name].$el.click()
+            }
+          } else {
             if (self.$refs[forIt.name]) {
               self.$refs[forIt.name].$el.click()
             }
@@ -105,19 +122,12 @@ export default {
       if (!n) {
         //回复快捷键
         document.onkeydown = this.documentKeyDownContent;
+      }else{
+        this.addKeyBoardEvent() // 增加快捷键
       }
     }
   },
-  mounted() {
-  },
   created() {
-    this.$nextTick(() => {
-      this.addKeyBoardEvent()   // 增加快捷键
-      //光标移动到确定按钮上
-      // setTimeout(() => {
-      //   this.$refs.confirm.$el.focus();
-      // }, 100)
-    })
   }
 }
 </script>
@@ -137,7 +147,7 @@ export default {
 }
 
 .content-div {
-  height: 180px;
+  height: 105px;
   align-items: center;
   justify-content: center;
   display: flex;

+ 29 - 4
src/components/base/dk-modal/dk-modal.vue

@@ -44,7 +44,7 @@
         <DkButton :loading="loading" v-if="okVisibleFlag" type="primary" @click="modalOk" name="confirm"
                   :ref="saveFlag?'save':'confirm'">{{ saveFlag ? '保存(S)' : '确定(O)' }}
         </DkButton>
-        <DkButton v-if="cancelVisibleFlag" @click="modalCancel" name="close" ref="close">{{ '关闭(X)' }}</DkButton>
+        <DkButton v-if="cancelVisibleFlag" @click="modalCancel" name="close" :ref="saveFlag?'close':'cancel'">{{ saveFlag ? '关闭(X)' : '取消(Y)' }}</DkButton>
       </div>
     </Modal>
   </div>
@@ -205,6 +205,10 @@ export default {
       this.$emit('input', n)
       if(n){
         this.displayFlag = true;
+        this.addKeyBoardEvent();
+      }else{
+        //恢复快捷键
+        document.onkeydown = this.documentKeyDownContent;
       }
     }
   },
@@ -234,6 +238,7 @@ export default {
       let self = this
       this.documentKeyDownContent = document.onkeydown
       document.onkeydown = function (e) {
+        console.log('334',self.showModal)
         const evn = e || event
         const key = evn.keyCode || evn.which || evn.charCode
         // alt:code = 18
@@ -251,13 +256,33 @@ export default {
           })
         }
         //只有modal弹出才能可见
-        if (self.$refs.modal.visible) {
+        if (self.showModal) {
+          // 查询子模块是否开着
+          let currentModal = null
+          let modalName = ''
+          console.log('rrr3',self.$refs)
+          for (let it of Object.keys(self.$refs)) {
+            // 如果没有放大镜的查询,那么就看这个界面的查询
+            if (it.startsWith('modal_') && self.$refs[it] ) {
+              currentModal = self.$refs[it]
+              modalName = it
+              break
+            }
+          }
           // Q:code = 81 查询
           btList.forEach(forIt => {
             if (code === 18 && forIt.hotKey.toLowerCase() === e.key.toLowerCase()) {
               e.returnValue = false
-              if (self.$refs[forIt.name]) {
-                self.$refs[forIt.name].$el.click()
+              // 如果模块开着,在前面加上模块的ref名
+              if (currentModal != null) {
+                console.log('333',currentModal)
+                if (self.$refs[modalName].$refs[forIt.name]) {
+                  self.$refs[modalName].$refs[forIt.name].$el.click()
+                }
+              } else {
+                if (self.$refs[forIt.name]) {
+                  self.$refs[forIt.name].$el.click()
+                }
               }
             }
           })

+ 8 - 3
src/components/base/dk-table/dk-table-column.vue

@@ -94,7 +94,7 @@
     <template #default="{ row,rowIndex}">
       <div class="normal-class" @dblclick.stop="copyValue(row,rowIndex)"><a
         style="text-decoration: underline;color: #2d8cf0;"
-        @click="handleLink(row)">{{
+        @click="handleLink(row,rowIndex)">{{
           row[field]
         }}</a>
         <!--        <span v-else>{{ row[field] }}</span></div>-->
@@ -389,6 +389,11 @@ export default {
     seqTipContent:{
       type:String,
       default:null
+    },
+    // 是否居中
+    centerFlag:{
+      type:Boolean,
+      default:null
     }
   },
   data() {
@@ -527,12 +532,12 @@ export default {
      * @author : 周兴
      * @date   : 2022/8/9 9:58
      */
-    handleLink(row) {
+    handleLink(row,rowIndex) {
       // 切换当前行
       if (this.dkTable) {
         this.dkTable.setCurrentRow(row);
       }
-      this.$emit('on-link', row)
+      this.$emit('on-link', row,rowIndex,this.field)
     },
     /**
      * @desc   : 查询可替换的数据

+ 4 - 0
src/components/base/dk-table/dk-table.vue

@@ -871,6 +871,10 @@ export default {
       for (let it of this.$slots.default) {
         if (it && it.componentInstance) {
           if (it.componentInstance.field === column.property) {
+            // 直接设置为居中
+            if(it.componentInstance.centerFlag != null && it.componentInstance.centerFlag){
+              return {textAlign: "center"}
+            }
             if (it.componentInstance.columnType === 'number') {
               return {textAlign: 'right'}
             } else if (it.componentInstance.columnType === 'checkbox' || it.componentInstance.columnType === 'date') {

+ 10 - 10
src/components/business/print/template.less

@@ -110,21 +110,21 @@
   }
 
   .header {
-    height: 60px;
+    //height: 60px;
     width: 100%;
-    background: #2d8cf0;
+    //background: #2d8cf0;
     margin-bottom: 10px;
-    display: flex;
-    padding: 0 10px 0 20px;
-    justify-content: space-between;
-    align-items: center;
+    //display: flex;
+    //padding: 0 10px 0 20px;
+    //justify-content: space-between;
+    //align-items: center;
   }
 
   .print-content {
     width: 100%;
     display: flex;
     justify-content: space-between;
-    height: ~"calc(100% - 70px)";
+    height: 100%;
     .left {
       width: 300px;
       background: #fff;
@@ -137,9 +137,9 @@
       overflow: hidden;
       padding: 20px;
       position: relative;
-      overflow-y: scroll;
-      overflow-x: scroll;
-      height:~"calc(100% - 6px)";
+      //overflow-y: scroll;
+      //overflow-x: scroll;
+      height: 100%;
     }
 
     .right {

+ 63 - 83
src/components/business/print/template.vue

@@ -1,37 +1,6 @@
 <!-- @desc:打印模板  @auth:洪旭东  @time:2022-05-20 14:31 -->
 <template>
   <div class="print-template" style="height: 100%;background: #f2f2f2;" onselectstart="return false">
-    <div class="header">
-      <img style="height: 60%;" src="http://www.dongkesoft.com/public/static/dongke/img/0logo.png"/>
-      <div style="display:flex;">
-<!--        <SelectPop v-model="templateType" style="width:200px;" :multiple="false"-->
-<!--                   :placeholder="$t('selectWords', { 'search-name': $t('templateType') })"-->
-<!--                   @on-select="changeTemplateType" :disabled="!(!(editRow))" label-key="label" value-key="value"-->
-<!--                   :options="templateTypeList" :clearable="false"-->
-<!--        />-->
-<!--        <InputPop name="templateName" v-model="templateName" style="width: 200px;margin-left: 10px;"/>-->
-        <SelectPop v-model="paperDirection" style="width:200px;margin-left: 10px;" :multiple="false"
-                   @on-select="changePaperDirection" label-key="label" value-key="value"
-                   :options="paperDirectionList"
-                   :placeholder="$t('selectWords', { 'search-name': $t('paperDirection') })"
-        />
-        <SelectPop v-model="paperType" style="width:200px;margin-left: 10px;" :multiple="false"
-                   @on-select="paperTypeChange" label-key="label" value-key="value"
-                   :options="paperTypeList" :placeholder="$t('selectWords', { 'search-name': $t('paperType') })"
-        />
-        <div style="color: white;line-height: 33px;margin-left: 10px;" v-if="paperType==0">宽度</div>
-        <InputNumberPop v-model="customWidth" style="width: 200px;margin-left: 10px;" :digits="1"
-                        @on-blur="(val)=> paperTypeList[0].width = val" v-if="paperType==0"/>
-        <div style="color: white;line-height: 33px;margin-left: 10px;" v-if="paperType==0">高度</div>
-        <InputNumberPop v-model="customHeight" style="width: 200px;margin-left: 10px;" :digits="1"
-                        @on-blur="(val)=> paperTypeList[0].height = val" v-if="paperType==0"/>
-      </div>
-      <div>
-<!--        <Button type="primary" @click="close" style="margin-right: 10px;">取消</Button>-->
-        <Button @click="save">保存</Button>
-      </div>
-    </div>
-
     <div class="print-content" v-if="templateType">
       <!--   左侧部分   -->
       <div class="center">
@@ -166,15 +135,65 @@
                            :y="item.top"
                            :x="item.left">
             <img :src="item.path" style="width: 100%;height: 100%;" v-if="item.name != '$scanCode' && item.name != '$barCode'"/>
-            <img :src="scanCode" style="width: 100%;height: 100%;" v-if="item.name == '$scanCode'"/>
-            <img :src="scanCode" style="width: 100%;height: 100%;" v-if="item.name == '$barCode'"/>
+            <div v-if="item.name == '$scanCode'">
+              <img :src="scanCode" style="width: 100%;height: 100%;"/>
+              {{dataSource.main.filter(f=>f.key==item.dataSourceKey)[0].value}}
+            </div>
+            <div v-if="item.name == '$barCode'">
+              <img :src="scanCode" style="width: 100%;height: 100%;"/>
+              {{dataSource.main.filter(f=>f.key==item.dataSourceKey)[0].value}}
+            </div>
           </vue-drag-resize>
 
         </div>
       </div>
       <!--  右侧部分    -->
       <div class="right" @mousedown.stop>
-        <Tabs value="name1" style="height: 100%;">
+        <div class="header">
+          <div>
+            <DkForm :col-count="1">
+              <DkFormItem :label="$t('paperDirection')">
+                <SelectPop v-model="paperDirection" style="width:200px;margin-left: 10px;" :multiple="false"
+                           @on-select="changePaperDirection" label-key="label" value-key="value"
+                           :options="paperDirectionList"
+                           :placeholder="$t('selectWords', { 'search-name': $t('paperDirection') })"
+                />
+              </DkFormItem>
+              <DkFormItem :label="$t('paperType')">
+                <SelectPop v-model="paperType" style="width:200px;margin-left: 10px;" :multiple="false"
+                           @on-select="paperTypeChange" label-key="label" value-key="value"
+                           :options="paperTypeList" :placeholder="$t('selectWords', { 'search-name': $t('paperType') })"
+                />
+              </DkFormItem>
+              <DkFormItem label="宽度">
+<!--                <div style="color: white;line-height: 33px;margin-left: 10px;" v-if="paperType==0">宽度</div>-->
+                <InputNumberPop v-model="customWidth" style="width: 200px;margin-left: 10px;" :digits="1"
+                                @on-blur="(val)=> paperTypeList[0].width = val" v-if="paperType==0"/>
+              </DkFormItem>
+              <DkFormItem label="高度">
+<!--                <div style="color: white;line-height: 33px;margin-left: 10px;" v-if="paperType==0">高度</div>-->
+                <InputNumberPop v-model="customHeight" style="width: 200px;margin-left: 10px;" :digits="1"
+                                @on-blur="(val)=> paperTypeList[0].height = val" v-if="paperType==0"/>
+              </DkFormItem>
+            </DkForm>
+            <!--        <SelectPop v-model="templateType" style="width:200px;" :multiple="false"-->
+            <!--                   :placeholder="$t('selectWords', { 'search-name': $t('templateType') })"-->
+            <!--                   @on-select="changeTemplateType" :disabled="!(!(editRow))" label-key="label" value-key="value"-->
+            <!--                   :options="templateTypeList" :clearable="false"-->
+            <!--        />-->
+            <!--        <InputPop name="templateName" v-model="templateName" style="width: 200px;margin-left: 10px;"/>-->
+
+
+
+
+          </div>
+          <div>
+<!--                    <Button type="primary" @click="close" style="margin-right: 10px;">取消</Button>-->
+<!--            <Button @click="save">保存</Button>-->
+          </div>
+        </div>
+
+        <Tabs value="name1">
           <TabPane label="控件" name="name1" style="height: 100%;">
             <div class="left-item" draggable="true" @dragend="dragend($event,'text')"
                  @click="drop({offsetY:0,offsetX:0},'text')">
@@ -237,11 +256,9 @@
               <div style="display: flex;justify-content: space-between;align-items: center;margin-bottom: 10px;">
                 <div style="width: 20%;display: flex;justify-content: space-between;align-items: center;">
                   <span>数</span><span>据</span><span>源</span></div>
-                <Select style="width: 75%;" filterable clearable v-model="moveList[currentIndex].dataSourceKey">
-                  <Option value="name" v-for="(item,index) in dataSource.main" :key="index" :value="item.key">
-                    {{ item.title }}
-                  </Option>
-                </Select>
+                <SelectPop v-model="moveList[currentIndex].dataSourceKey" style="width:75%;" :multiple="false" clearable
+                           label-key="title" value-key="key"
+                           :options="dataSource.main"/>
               </div>
             </div>
             <!--      当前选中为表格      -->
@@ -255,11 +272,9 @@
               <div style="display: flex;justify-content: space-between;align-items: center;margin-bottom: 10px;">
                 <div style="width: 20%;display: flex;justify-content: space-between;align-items: center;"><span>数</span><span>据</span><span>源</span>
                 </div>
-                <Select style="width: 75%;" clearable v-model="tableCol[getCurrentColIndexReal(currentColIndex)].key">
-                  <Option value="name" v-for="(item,index) in dataSource.detail" :key="index" :value="item.key">
-                    {{ item.title }}
-                  </Option>
-                </Select>
+                <SelectPop v-model="tableCol[getCurrentColIndexReal(currentColIndex)].key" style="width:75%;" :multiple="false" clearable
+                           label-key="title" value-key="key"
+                           :options="dataSource.detail"/>
               </div>
             </div>
             <!--     当前选择为图片       -->
@@ -295,11 +310,9 @@
                 <div style="display: flex;justify-content: space-between;align-items: center;margin-bottom: 10px;">
                   <div style="width: 20%;display: flex;justify-content: space-between;align-items: center;">
                     <span>数</span><span>据</span><span>源</span></div>
-                  <Select style="width: 75%;" filterable clearable v-model="imgList[currentImgIndex].dataSourceKey">
-                    <Option value="name" v-for="(item,index) in dataSource.main" :key="index" :value="item.key">
-                      {{ item.title }}
-                    </Option>
-                  </Select>
+                  <SelectPop v-model="imgList[currentImgIndex].dataSourceKey" style="width:75%;" :multiple="false" clearable
+                             label-key="title" value-key="key"
+                             :options="dataSource.main.copy()"/>
                 </div>
               </div>
             </div>
@@ -725,7 +738,6 @@ export default {
      * @date   : 2022-5-25 20:01
      */
     importSuccess(event) {
-      console.log('event', event)
       // if (event.code == 200 && event.data && event.data.uuidName) {
       //   this.imgList[this.currentImgIndex].path = this.$config.imgUrl + '/' + event.data.uuidName
       //阿里OSS
@@ -743,7 +755,6 @@ export default {
     importSuccessBackground(response, file, fileList) {
       //如果多次上传,要把上一次图片的替换掉
       if (fileList.length > 1) {
-        console.log('this.$refs.backgroundImg', this.$refs.backgroundImg)
         this.$refs.backgroundImg.fileList.splice(0, 1)
       }
       if (response.code == 200 && response.data && response.data.relativePath) {
@@ -767,7 +778,6 @@ export default {
      * @date   : 2022-5-25 19:20
      */
     beforeUpload(file) {
-      console.log('beforeUpload', file.size / 1024, this.maxSize)
       if (!this.acceptFile.split(',').includes(file.type)) {
         this.$Message.warning('图片格式不在允许的范围内')
         return false
@@ -793,7 +803,6 @@ export default {
       })
     },
     checkItemInPaper(paper) {
-      console.log('paper', paper)
       let div = document.createElement('div')
       div.id = 'cm'
       div.style.width = paper.width + 'cm'
@@ -806,7 +815,6 @@ export default {
       let heightPx = this.paperDirection === 'portrait' ? cm.height : cm.width
       div.remove()
 
-      console.log('切换之后宽:' + widthPx + ',高:' + heightPx)
 
       return new Promise(resolve => {
         let flag = true
@@ -832,18 +840,15 @@ export default {
       this.checkItemInPaper(this.paperTypeList[index]).then(flag => {
         if (flag) {
           let paperEl = document.getElementById('paper')
-          console.log('offsetHeight', paperEl.offsetHeight)
           this.parentH = paperEl.clientHeight
           this.parentW = paperEl.clientWidth
           /*  重新打乱 */
           this.$nextTick(() => {
             // debugger
-            console.log(this.paperTypeList[this.paperType].label)
             let maxWidth = 0
             let currentRowIndex = 0
             /* 计算一下最多能摆多少个 */
             let rowCount = Math.floor(document.getElementById('paper').offsetHeight / 20)
-            console.log('rowCount', rowCount)
             let moveListIndex = 0
             setTimeout(() => {
               this.moveList.forEach(it => {
@@ -871,11 +876,9 @@ export default {
 
     },
     visibleChange(val) {
-      console.log('visibleChange')
       this.$emit('input', val)
       if (val) {
         if (this.editRow) {
-          console.log('visibleChange-editRow', this.editRow)
           this.lastTemplateType = this.editRow.docCode
           this.templateType = this.editRow.docCode
           this.templateName = this.editRow.tmName
@@ -889,7 +892,7 @@ export default {
           this.paperDirection = this.editRow.templateData.paperDirection
           this.organization = this.editRow.orgId
           this.backgroundConfig = this.editRow.templateData.backgroundConfig
-          this.paperType = this.paperTypeList.map(it => it.label).indexOf(this.editRow.templateData.paperInfo.label)
+          this.paperType = this.paperTypeList.map(it => it.label).indexOf(this.editRow.templateData.paperInfo.label).toString()
           this.paperTypeList[0].width = this.editRow.templateData.paperInfo.width
           this.customWidth = this.editRow.templateData.paperInfo.width
           this.paperTypeList[0].height = this.editRow.templateData.paperInfo.height
@@ -898,7 +901,6 @@ export default {
           this.lastPaperDirection = this.paperDirection
           //通过这种方式去渲染,避免双向绑定冲突问题
           this.$nextTick(() => {
-            console.log('this.tableCol', this.tableCol)
             let table = this.$refs.printTemplateTable
             /* 过滤一下 2022年8月30日14:51:25 */
             this.tableCol.filter(it => it.checked).forEach((it, index) => {
@@ -1156,7 +1158,6 @@ export default {
               },
               on: {
                 click: () => {
-                  console.log('del text', data)
                   event.stopPropagation()
                   switch (data.type) {
                     case 'text':
@@ -1176,7 +1177,6 @@ export default {
               },
               on: {
                 'on-change': (flag) => {
-                  console.log('change Checkbox', data)
                   event.stopPropagation()
                   switch (data.type) {
                     case 'text':
@@ -1188,7 +1188,6 @@ export default {
                         return index !== data.index
                       })
                       let qy = willDelWidth % this.tableCol.length
-                      console.log(qy)
                       if (qy === 0) {
                         this.tableCol.forEach(it => {
                           it.width += willDelWidth / this.tableCol.length
@@ -1305,7 +1304,6 @@ export default {
                   event.stopPropagation()
                   switch (data.type) {
                     case 'col':
-                      console.log(flag)
                       /* 添加明细 */
                       if (flag) {
                         let width = 10 /* 默认新加的列宽度就是10 */
@@ -1347,7 +1345,6 @@ export default {
      * @date   : 2022-5-12 11:39
      */
     onSelectChange(current) {
-      console.log('current', current)
       if (current.length <= 0 || !current[0].type) {
         return
       }
@@ -1355,7 +1352,6 @@ export default {
       if (current[0].type === 'text') {
         this.moveList[current[0].index].currentFlag = true
         this.currentIndex = current[0].index
-        console.log(this.moveList)
       }
 
       if (current[0].type === 'col') {
@@ -1438,7 +1434,6 @@ export default {
           }
         })
         this.tableCol[this.currentColIndex - 1].width = 100 - withoutBeforeWidth
-        console.log('该行前行宽度' + (100 - withoutBeforeWidth))
       } else {
         let withoutAfterWidth = 0
         this.tableCol.forEach((it, index) => {
@@ -1447,7 +1442,6 @@ export default {
           }
         })
         this.tableCol[this.currentColIndex + 1].width = 100 - withoutAfterWidth
-        console.log('该行后行宽度' + (100 - withoutAfterWidth))
       }
     },
     getItemTemplate(e) {
@@ -1456,12 +1450,9 @@ export default {
       temp.left = e.offsetX - 30 <= 0 ? 0 : e.offsetX - 30
       temp.checked = true
       temp.deleteFlag = true
-      console.log('temp', temp)
       return temp
     },
     dragend(e, type) {
-      console.log('e', e)
-      // console.log(document.getElementById('paper'))
       let tempE = { offsetX: e.clientX - 365, offsetY: e.clientY - 113 }
       this.drop(tempE, type)
     },
@@ -1471,7 +1462,6 @@ export default {
      * @date   : 2022-5-12 11:47
      */
     drop(e, type) {
-      console.log('drop')
       switch (type) {
         case 'page':
           let data = this.getItemTemplate(e)
@@ -1647,7 +1637,6 @@ export default {
       this.tableInfo.left = newRect.left
     },
     selectDragImg(index) {
-      console.log(index)
       this.clearAllSelect()
       this.imgList.forEach((it, i) => {
         if (index === i) {
@@ -1699,14 +1688,11 @@ export default {
 
       // 提交时 重新处理一下width
       let table = document.getElementById('printTemplateTable')
-      console.log('tableCol', this.tableCol)
       if (table) {
         for (let j = 0; j < table.rows[0].cells.length; j++) {
-          console.log('offsetWidth', table.rows[0].cells[j].getAttribute('data-key'))
           let width = table.rows[0].cells[j].offsetWidth
           this.tableCol.forEach(tcIt => {
             if (tcIt.key === table.rows[0].cells[j].getAttribute('data-key')) {
-              console.log(tcIt.key, width)
               tcIt.width = parseInt(width)
             }
           })
@@ -1760,7 +1746,6 @@ export default {
       return uuid
     },
     changeTemplateType(val) {
-      console.log('changeTemplateType', this.moveList, this.tableInfo, this.imgList)
       if (this.moveList.length > 0 || this.tableInfo || this.imgList.length > 0) {
         this.$Modal.confirm({
           title: '提示',
@@ -1790,17 +1775,14 @@ export default {
       return ctx.measureText(str).width
     },
     changeFunc(val) {
-      console.log('changeFunc', val)
       if (!val) {
         return
       }
       let templateObj = this.templateTypeList.filter(it => {
         return it.value === val
       })[0]
-      console.log('templateObj', templateObj)
       /* 这块得改一下  因为元素太多会超出纸张范围 沈博 2022年6月30日13:43:01*/
       this.$nextTick(() => {
-        console.log('paperDirection', this.paperDirection, this.paperTypeList[this.paperType], document.getElementById('paper').offsetHeight)
 
         let paperHeight = document.getElementById('paper').offsetHeight
         let paperWidth = document.getElementById('paper').offsetWidth
@@ -1911,7 +1893,6 @@ export default {
      * @date   : 2022-5-13 14:40
      */
     moveDom(way) {
-      console.log('this.currentIndex', this.currentIndex, 'this.currentImgIndex', this.currentImgIndex, this.currentColIndex)
       if (this.currentIndex >= 0) {
         switch (way) {
           case 'left':
@@ -1980,7 +1961,6 @@ export default {
       let nextElement = null
       let nextWidth = 0
 
-      // console.log('table', table)
       for (let j = 0; j < table.rows[0].cells.length; j++) {
         table.rows[0].cells[j].onmousedown = function (e) {
           //记录单元格

+ 10 - 1
src/config/index.js

@@ -266,6 +266,15 @@ export default {
     grouping: '分组粘接',
     group: '组内粘接',
   },
+  /**
+   *   @desc   : 窑车状态表 字段
+   *   @date   : 2023/3/13 9:39
+   *   @author : 王英杰
+   */
+  KilnCarStatusText: {
+    KilnCarProducts: '窑车产品',
+    productionData: '生产数据',
+  },
 
   /**
    *   @desc   : 工序类型
@@ -1520,7 +1529,7 @@ export default {
    * @date   : 2022-5-13 13:10
    */
   paperTypeList: [
-    { label: '自定义', value: 0, width: 0, height: 0 },
+    { label: '自定义', value: '0', width: 0, height: 0 },
     { label: 'A4 (21cm x 29.7cm)', value: 1, width: 21, height: 29.7 },
     { label: 'A5 (14.8cm x 21cm)', value: 2, width: 14.8, height: 21 },
     { label: 'B5 (17.6cm x 25cm)', value: 3, width: 17.6, height: 25 },,

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

@@ -353,6 +353,7 @@ export const columns = {
   parameterClassification:'参数分类',
   classCode: '模块',
   settingName: '参数名称',
+  settingStyle:'参数分类',
   settingValue: '参数值',
   settingDefault: '默认值',
   settingDescription: '参数说明',
@@ -402,6 +403,7 @@ export const columns = {
 
   kilnId: '窑炉ID',
   kilnCode: '窑炉编码',
+  kilnType:'窑炉类型',
   kilnName: '窑炉名称',
   usedNum: '使用次数',
   usedCycle: '使用周期',
@@ -910,6 +912,8 @@ export const columns = {
   makeUserCode: '制单工号',
   opnMakeUserName: '制单员',
   pdtProdQty: '生产数量',
+  productionData:'生产数据',
+  KilnCarProducts:'窑车产品',
   pdtGradeName: '产品分级',
   pdtGradekindName: '产品等级',
   crovMonthDateRange: '日期范围',
@@ -960,6 +964,8 @@ export const columns = {
   columns:'列',
   rows:'行',
   data:'值',
+  paperType: '纸张类型',
+  paperDirection: '纸张方向',
 }
 
 /**
@@ -1265,6 +1271,7 @@ export const others = {
   doubleChange:'双击跳转',
   max:'最大化',
   min:'最小化',
+  maxProductNum:'最大产品数量',
   changeScript:'跳转条件',
   changeTabName:'跳转页签',
   flgVisible:'显示',
@@ -1516,6 +1523,7 @@ export const appColumns = {
   appOldProdCodeChange: '原产品型号',
   appNewProdCodeChange: '新产品型号',
   appNewProdCodeName: '新型号名称',
+  appAddDetails:'添加产品至明细'
 }
 /**
  * @desc   : app按钮
@@ -1631,7 +1639,8 @@ export const appOthers = {
   appNoBonding:'分体粘接-无',
   appIntragroupBonding:'分体粘接-组',
   appGroupBonding:'分体粘接-位',
-  appProductSelectReplaceTitle:'请选择需要替换的产品'
+  appProductSelectReplaceTitle:'请选择需要替换的产品',
+  appProductSelectAddReplaceTitle:'请选择需要添加的产品'
 }
 
 

+ 7 - 1
src/mixins/index.js

@@ -186,6 +186,7 @@ export const indexMixin = {
               if (name === 'save') {
                 chooseRows = null
               }
+              console.log('rr1',routeUrl.method)
               // 执行方法
               this[routeUrl.method](chooseRows);
             }
@@ -510,11 +511,15 @@ export const indexMixin = {
      * @author : 周兴
      * @date   : 2023/1/6 13:04
      */
-    getMaxDisplayNo(displayNoTable, formDataName = null) {
+    getMaxDisplayNo(displayNoTable,otherParams, formDataName = null) {
       let params = {
         table: displayNoTable.model + "." + displayNoTable.table,
         ftyId: this.$store.state.user.ftyId
       }
+      // 如果有其他条件,需要合并到查询条件中
+      if(otherParams){
+        this.objectMerge(params, otherParams)
+      }
       this.excute(this.$service.commonService, this.$service.commonService.getMaxDisplayNo, params).then(res => {
         if (res.code === this.$config.SUCCESS_CODE) {
           if (!formDataName) {
@@ -619,6 +624,7 @@ export const indexMixin = {
         btList.forEach(forIt => {
           if (code != 18 || forIt.hotKey.toLowerCase() != e.key.toLowerCase()) return
           e.returnValue = false
+          // console.log('rrr',currentModal,self.$refs)
           // 如果模块开着,在前面加上模块的ref名
           if (currentModal != null) {
             if (self.$refs[modalName + '_' + forIt.name]) {

+ 96 - 29
src/view-app/app/grouting-management/grouting-bind-barcode/index.vue

@@ -13,26 +13,48 @@
     <dk-app-field :focus="true" :readonly="false" :label="$t('appGroutingBatch')" @changeBarCode="onSearch"
       v-model="formData.moldingBatch"></dk-app-field>
     <!-- 起始编码-->
-    <dk-app-field :focus="true" :readonly="false" :label="$t('appStartCode')" :removeSpacesFlag="true"
-      v-model="formData.produceBarCode" @changeBarCode="setStartCode"></dk-app-field>
+    <dk-app-field :focus="true"  :label="$t('appStartCode')"
+      :removeSpacesFlag="true" v-model="formData.produceBarCode" @changeBarCode="setStartCode"></dk-app-field>
 
     <div class="main-app-table" ref="scrollTable">
       <!--  列表-->
       <dk-app-table-more :rows="rowsTemp" :rowsBom="rowsBom" :collapseFlag="collapseFlag" :tableRowData="tableRowData"
-        :checkboxFlag="false" @changeValue="changeValue" @replace="replace">
+        @changeValue="changeValue" @replace="replace" :singleFlag="true" :checkboxFlag="checkboxFlag"
+       @onClickCheckbox="onClickCheckbox">
       </dk-app-table-more>
-
+      <!-- :readonlyAll="flgBindUnique || !flgMolding"  -->
     </div>
 
     <div style="height: 150px"></div>
     <!--    保存-->
-    <div class="app_save_bottom-class" v-if="tableRowData.length > 0" style="padding: 15px 10px 10px 10px">
-      <dk-app-button @click="save" :disabled="loading">{{
-        $t('appSave') + '(' + tableRowData.length + ')'
-      }}
-      </dk-app-button>
+
+
+    <div class="app_save_bottom-class" style="padding: 15px 10px 10px 10px">
+      <div style="display: flex">
+        <!--        添加明细-->
+        <div style="width: 35%" v-if="tableRowDataChecked.length > 0">
+          <dk-app-button
+            @click="replace({ key: 'add', item: tableRowDataChecked[0], parentIndex: parentIndex, moldlineId: moldlineId })">{{
+              $t('appAddDetails') }}
+          </dk-app-button>
+        </div>
+        <div v-if="tableRowDataChecked.length > 0" style="width:5%"></div>
+
+        <!--        保存-->
+        <div :style="tableRowDataChecked.length > 0 ? 'width: 60%' : 'width: 100%'">
+          <dk-app-button @click="save" :disabled="loading">{{
+            $t('appSave') + '(' + tableRowData.length + ')'
+          }}
+          </dk-app-button>
+        </div>
+      </div>
+
 
     </div>
+
+
+
+
     <!--    单选天日期组件-->
     <dk-app-dropdown-single-date-day :show="showFormingDateFlag" @onConfirmChooseDate="onConfirmProduceDate"
       @onCloseChooseDate="onCloseChooseDate"></dk-app-dropdown-single-date-day>
@@ -49,6 +71,9 @@ export default {
   mixins: [appFormMixin],
   data() {
     return {
+      flgBindUnique: false,
+      flgMolding: true,
+      checkboxFlag: false, //成型日期标识
       showFormingDateFlag: false, //成型日期标识
       collapseFlag: false, //更多标识
       rowsTemp: [],
@@ -107,10 +132,41 @@ export default {
         produceBarCode: '',
         formingDate: ''
       },
-      tableRowData: []
+      tableRowData: [],
+      tableRowDataChecked: [],
+      parentIndex: null,
     }
   },
   methods: {
+    /**
+      * @desc   : 单选
+      * @author : 于继渤
+      * @date   : 2023/2/7 17:23
+      */
+    onClickCheckbox(e) {
+      this.tableRowDataChecked = this.tableRowData.filter(res => {
+        return res.checked
+      })
+      
+      this.parentIndex = e.index
+    },
+
+    /**
+     * @desc   : 替换
+     * @author : 于继渤
+     * @date   : 2023/4/25 12:23
+     */
+    replace(e) {
+      this.$router.push({
+        name: 'app-product-select-replace', params: {
+          item: e.item,
+          key: e.key ? e.key : '',
+          moldlineId: e.moldlineId ? e.moldlineId : null,
+          parentIndex: e.parentIndex,
+          tableList: this.tableRowData[e.parentIndex]
+        }
+      })
+    },
 
     /**
       * @desc   : 搜索事件
@@ -156,6 +212,9 @@ export default {
         this.loading = false
         if (res.code === this.$config.SUCCESS_CODE) {
           if (res.data && res.data.length > 0) {
+            this.moldlineId = res.data[0].uniqueId
+            this.flgBindUnique = res.data[0].flgBindUnique //绑码标识
+            this.flgMolding = res.data[0].flgMolding //成型标识
             let params =
             {
               ftyId: this.$store.state.user.ftyId,
@@ -188,6 +247,8 @@ export default {
             this.tableRowData = res.data
             //无分组
             if (params.pdtGlueKind.indexOf(this.$t('appNoBonding')) !== -1) {
+              this.checkboxFlag = false
+
               this.rowsTemp = this.rows
               this.collapseFlag = false
               this.pdtGlueKind = 0
@@ -204,6 +265,8 @@ export default {
               }
             }
             if (params.pdtGlueKind.indexOf(this.$t('appIntragroupBonding')) !== -1) {
+              this.checkboxFlag = false
+
               this.rowsTemp = this.rowsGroup
               this.collapseFlag = true
               this.pdtGlueKind = 1
@@ -256,6 +319,7 @@ export default {
               }
             }
             if (params.pdtGlueKind.indexOf(this.$t('appGroupBonding')) !== -1) {
+              this.checkboxFlag = true
               let index = 0
               this.rowsTemp = this.rowsGrouping
               this.collapseFlag = true
@@ -361,18 +425,6 @@ export default {
     },
 
 
-    /**
-     * @desc   : 替换
-     * @author : 于继渤
-     * @date   : 2023/4/25 12:23
-     */
-    replace(e) {
-      this.$router.push({name: 'app-product-select-replace', params: {
-        item:e.item,
-        parentIndex:e.parentIndex,
-        tableList:this.tableRowData[e.parentIndex]
-      }})
-    },
 
     /**
    * @desc   : 设置起始编码
@@ -613,8 +665,8 @@ export default {
         }
       }
     },
-    handleExcuteAlert(){
-        this.loading = false
+    handleExcuteAlert() {
+      this.loading = false
     },
 
     /**
@@ -701,7 +753,7 @@ export default {
      * @author : 于继渤
      * @date   : 2023/3/6 10:35
      */
-     validData() {
+    validData() {
       let codeNoList = []
       codeNoList = codeNoList.concat(this.tableRowData.copy().filter(f => f.productUniqueCode).map(m => m.productUniqueCode))
       if (codeNoList.length != codeNoList.unique().length) {
@@ -747,11 +799,26 @@ export default {
   created(e) {
 
   },
-
+  /**
+   * @desc   : 下一页返回数据处理
+   * @author : 于继渤
+   * @date   : 2023/2/7 17:23
+   */
   activated() {
-    if(localStorage.getItem("app-product-select-replace-data") !== null) {
-      let chooseData =  JSON.parse(localStorage.getItem("app-product-select-replace-data")) ||[]
-      this.tableRowData[chooseData.parentIndex].bomItems = chooseData.children
+    if (localStorage.getItem("app-product-select-replace-data") !== null) {
+      let chooseData = JSON.parse(localStorage.getItem("app-product-select-replace-data")) || []
+      if (chooseData.key === 'add') {
+        //新添明细数据处理
+        if (chooseData.parentIndex || chooseData.parentIndex === 0) {
+          this.tableRowData[chooseData.parentIndex].bomItems.push(chooseData.children)
+        }
+      } else {
+        //替换明细数据处理
+        if (chooseData.parentIndex || chooseData.parentIndex === 0) {
+          this.tableRowData[chooseData.parentIndex].bomItems = chooseData.children
+        }
+      }
+      //清空缓存数据
       localStorage.removeItem("app-product-select-replace-data")
     }
   },

+ 163 - 58
src/view-app/app/grouting-management/grouting-bind-barcode/product-select-replace.vue

@@ -2,31 +2,53 @@
     <!-- 选择成型线 -->
     <div class="main-app">
         <!-- 顶部导航栏 -->
-        <dk-app-nav-bar :title="$t('appProductSelectReplaceTitle')" @click-left="onClickLeft"></dk-app-nav-bar>
+        <dk-app-nav-bar :title="title" @click-left="onClickLeft"></dk-app-nav-bar>
+        <!--      成型线编码-->
+        <dk-app-field v-model="formDataView.uniqueCode" :label="$t('appMoldingCode')" ref="uniqueCode"
+            placeholderType="scan" :readonly="false" @changeBarCode="onSearch" />
+
+        <!--      成型日期-->
+        <dk-app-field v-model="formDataView.formingDate" :label="$t('appFormingDate')" :readonly="true"
+            :defaultDateFlag="false" @click="showFormingDateClick" placeholderType="choose" is-link
+            arrow-direction="down" />
+        <!--      成型批次-->
+        <dk-app-field v-model="formDataView.moldingBatch" :label="$t('appGroutingBatch')" typeInput="number"
+            :readonly="false" @changeBarCode="onSearch" />
+        <!-- 分组序号-->
+        <dk-app-field :focus="true" :readonly="false" :label="$t('appGroupNo')" typeInput="digit" @changeBarCode="onSearch"
+            v-model="formDataView.groupName"></dk-app-field>
+
         <div class="main-app-table" ref="scrollTable">
-            <!--  列表-->
-            <dk-app-table :rows="rows" :tableRowData="tableRowData" :checkboxFlag="true" :collapseFlag="false"
-                @onClickCheckbox="onClickCheckbox">
-            </dk-app-table>
+            <van-list v-model="pageLoading" :immediate-check="false" :finished="pageFinished"
+                :finished-text="$t('appNoMoreData')" @load="getData" offset="10">
+                <!--  列表-->
+                <dk-app-table :rows="rows" :tableRowData="tableRowData" :checkboxFlag="true" :collapseFlag="false"
+                    :singleFlag="true" @onClickCheckbox="onClickCheckbox">
+                </dk-app-table>
+            </van-list>
         </div>
         <!--    保存-->
         <div class="app_save_bottom-class" style="padding: 15px 10px 10px 10px">
-            <dk-app-button @click="save">{{$t('appDefine')}} </dk-app-button>
-
+            <dk-app-button @click="save">{{ $t('appDefine') }} </dk-app-button>
         </div>
+        <!--    单选天日期组件-->
+        <dk-app-dropdown-single-date-day :show="showFormingDateFlag" @onConfirmChooseDate="onConfirmProduceDate"
+            @onCloseChooseDate="onCloseChooseDate"></dk-app-dropdown-single-date-day>
+
+        <dk-app-loading :loading="pageLoading"></dk-app-loading>
     </div>
 </template>
   
   
 <script>
-import { appFormMixin } from "@/mixins/appform";
+import { appIndexMixin } from "@/mixins/appindex";
 
 export default {
     name: "app-product-select-replace",
-    mixins: [appFormMixin],
+    mixins: [appIndexMixin],
     data() {
         return {
-            loading: false,
+            title: this.$t('appProductSelectReplaceTitle'),
             showFormingDateFlag: false,
             tableRowData: [],
             chooseData: {},
@@ -34,9 +56,21 @@ export default {
                 moldLineCode: '',//成型线编码
                 productUniqueCode: '',//产品编码
                 formingDate: '',
-                moldingBatch: 1,
+                moldingBatch: '',
+                pdtBarcode: '',
+                moldingUser: '',
+                uniqueCode: '',
+                groupName: '',
+            },
+            formDataView: {
+                moldLineCode: '',//成型线编码
+                productUniqueCode: '',//产品编码
+                formingDate: '',
+                moldingBatch: '',
                 pdtBarcode: '',
                 moldingUser: '',
+                uniqueCode: '',
+                groupName: '',
             },
             rows: [
                 { name: 'moldingBatch', title: this.$t('moldingBatch') },
@@ -49,23 +83,68 @@ export default {
                 { name: 'modelName', title: this.$t('productName') },
                 { name: 'mouldCode', title: this.$t('moldingModelCode') },
                 { name: 'moldlineItemKindName', title: this.$t('mouldKind') },
-            ]
+            ],
+            pageLoading: false,//是否处于加载状态,加载过程中不触发load事件
+            pageFinished: false,//是否已加载完成,加载完成后不再触发load事件
+            page: 1,
+            page_size: 10,
+            pageTotal: 0,
 
         }
     },
+
     methods: {
         /**
+         * @desc   : 成型日期确定事件
+         * @author : 于继渤
+         * @date   : 2023/2/13 13:39
+         */
+        onConfirmProduceDate(e) {
+            this.formData.formingDate = e.date;
+            this.showFormingDateFlag = false;
+        },
+
+        /**
+         * @desc   :  成型日期关闭事件
+         * @author : 于继渤
+         * @date   : 2023/2/13 14:28
+         */
+        onCloseChooseDate() {
+            this.showFormingDateFlag = false;
+        },
+        /**
          *   @desc   : 设置查询参数
          *   @date   : 2023/02/01
          *   @author : 于继渤
          */
         setSearchParams() {
             let params = {}
-            params.currentPage = 1
-            params.pageSize = 999
+            if (this.key === 'add') {
+                //查询可添加绑定条码的产品
+                params.modelIdList = []
+                if (this.formData.bomItems && this.formData.bomItems.length > 0) {
+                    this.formData.bomItems.forEach(res => {
+                        params.modelIdList.push(res.mouldId)
+                    })
+                }
+                params.moldlineId = this.moldlineId
+                params.pdtModelId = -999
+                params.total = 0
+                params.default = null
+
+            } else {
+                //查询可替换绑定条码的产品
+                params.pdtGlueKind = this.formData.pdtGlueKind
+                params.pdtModelId = this.formData.repPdtModelId
+            }
+            params.currentPage = this.page
+            params.pageSize = this.page_size
             params.ftyId = this.$store.state.user.ftyId
-            params.pdtGlueKind = this.formData.pdtGlueKind
-            params.pdtModelId = this.formData.repPdtModelId
+            params.moldingBatch = this.formDataView.moldingBatch  //成型批次
+            params.uniqueCode = this.formDataView.uniqueCode  //成型编码
+            params.moldingDateStart = this.formDataView.formingDate //成型日期
+            params.moldingDateEnd = this.formDataView.formingDate
+            params.groupName = this.formDataView.groupName  //分组序号
             return params
         },
         /**
@@ -74,36 +153,44 @@ export default {
          *   @author : 于继渤
          */
         getData() {
+            this.pageLoading = true
             // 参数设置
             let params = this.setSearchParams()
-            this.excute(this.$service.moldingRecordItemService, this.$service.moldingRecordItemService.selectProductByBindBarcode, params)
+            //默认 查询可替换绑定条码的产品
+            let API = this.$service.moldingRecordItemService.selectProductByBindBarcode
+            if (this.key === 'add') {
+                //查询可添加绑定条码的产品
+                API = this.$service.moldingRecordItemService.selectProductCanBindBarcode
+            }
+            this.excute(this.$service.moldingRecordItemService, API, params)
                 .then(res => {
                     if (res.code === this.$config.SUCCESS_CODE) {
-                        if (res.data.list && res.data.list.length > 0) {
-                            res.data.list.forEach(it => {
-                                it.checked = false
-                            })
-                            this.tableRowData = res.data.list
-                        } else {
-                            this.$appDialog.alert({ message: this.$t('W_006') }).then(() => {
-                                this.tableRowData = []
-                            });
-
+                        this.tableRowData = this.tableRowData.concat(res.data.list)
+                        if (this.page == 1) {
+                            this.pageTotal = Math.ceil(res.data.total / this.page_size);
                         }
-
+                        // loading为false,此时会根据列表滚动位置判断是否触发load事件(列表内容不足一屏幕时,会直接触发)
+                        this.pageLoading = false
+                        if (this.page >= this.pageTotal) {
+                            // 数据全部加载完成
+                            this.pageFinished = true;
+                        }
+                        this.tableRowData.length === 0 ? (this.finishedText = "暂无数据") : (this.finishedText = "没有更多了");
+                        this.page++
+                    } else {
+                        this.pageFinished = true;
+                        this.pageLoading = false;
                     }
                 })
         },
-
-
         /**
          * @desc   : 搜索事件
          * @author : 于继渤
          * @date   : 2023/2/7 17:23
          */
         onSearch(e) {
+            this.page = 1
             this.tableRowData = []
-
             //获取数据
             this.getData()
         },
@@ -113,11 +200,6 @@ export default {
          * @date   : 2023/2/7 17:23
          */
         onClickCheckbox(e) {
-            this.tableRowData.forEach(item => {
-                item.checked = false
-            })
-            this.tableRowData[e.index].checked = true
-
         },
 
         /**
@@ -127,44 +209,64 @@ export default {
          */
         save() {
             let obj = {}
+            //处理数据
             this.tableRowData.forEach(res => {
                 if (res.checked) {
                     obj = res
                 }
             })
-            if (!obj) {
+
+            let tableRowDataTemp = this.tableRowData.filter(res => {
+                return res.checked
+            })
+            //校验是否选择数据
+            if (tableRowDataTemp.length == 0) {
                 this.appToastFail(this.$t('W_017'))
                 return
             }
-
-           
             //判断页面中是否已有选择数据
             //没有重复数据
-            if (this.tableList.bomItems.filter(it => it.pdtModelId == obj.pdtModelId &&
-                it.moldlineId == obj.moldlineId && it.moldlineItemNo == obj.moldlineItemNo).length == 0) {
-                //替换明细
-                this.checkDetailByBindBarCode(obj)
-                // this.showModal = false
+            if (this.tableList.bomItems.filter(it => it.pdtModelId == obj.pdtModelId && it.moldlineId == obj.moldlineId && it.moldlineItemNo == obj.moldlineItemNo).length == 0) {
+                if (this.key !== 'add') {
+                    //替换明细
+                    this.checkDetailByBindBarCode(obj)
+                }
             } else {
+                //重复数据,提示错误
                 this.appToastFail(this.$t('W_141'))
                 return
             }
-
+            let tempObj = {}
+            if (this.key === 'add') {
+                //新添明细
+                obj['moldingItemId'] = obj.itemId
+                tempObj = {
+                    key: 'add',
+                    children: obj,
+                    parentIndex: this.parentIndex
+                }
+            } else {
+                //替换明细
+                tempObj = {
+                    key: '',
+                    children: this.children,
+                    parentIndex: this.parentIndex
+                }
+            }
             //存缓存
-            localStorage.setItem("app-product-select-replace-data", JSON.stringify({
-                children:this.children,
-                parentIndex:this.parentIndex
-            }))
+            localStorage.setItem("app-product-select-replace-data", JSON.stringify(tempObj))
+            //返回
             this.$router.go(-1)
         },
 
 
-
+        /**
+         * @desc   : 处理数据
+         * @author : 于继渤
+         * @date   : 2023/2/14 9:35
+         */
         checkDetailByBindBarCode(row) {
-
             let children = this.tableList.bomItems
-
-     
             for (let i in children) {
                 //找到明细中需要替换的数据
                 if (children[i].id == this.formData.id) {
@@ -211,8 +313,6 @@ export default {
     },
 
     mounted() {
-        // 因为是封装的组件所以是两层
-        // this.$refs.moldLineCode.$refs.input.focus()
         // 设置滚动的位置和高度
         this.setAppTableHeight()
     },
@@ -223,9 +323,14 @@ export default {
      */
     created(e) {
         if (this.$route.params) {
-            this.formData = this.$route.params.item
-            this.parentIndex = this.$route.params.parentIndex
-            this.tableList = this.$route.params.tableList
+            this.formData = this.$route.params.item //上一页选择的数据对象
+            this.key = this.$route.params.key //上一页选择的操作类型   替换/新添  (key:add)
+            if (this.$route.params.key && this.$route.params.key === 'add') {
+                this.moldlineId = this.$route.params.moldlineId  //设置成型线id
+                this.title = this.$t('appProductSelectAddReplaceTitle') //设置标题
+            }
+            this.parentIndex = this.$route.params.parentIndex  //上一页选择的数据位置索引
+            this.tableList = this.$route.params.tableList  //上一页选择的数据
             this.onSearch()
         }
 

+ 3 - 3
src/view-app/login/app-login.vue

@@ -10,17 +10,17 @@
         flex-direction: column;align-items: center;justify-content: center;background: #8c939d">
         <div style="width: 80%;border-radius: 3px;margin: 10px 20px">
           <!-- 输输入用户名 -->
-          <dk-app-field ref="ftyCode" v-model="ftyCode" :label="$t('appftyCode')"
+          <dk-app-field ref="ftyCode" :isOnceHideKeyboard="false" v-model="ftyCode" :label="$t('appftyCode')"
                         @changeBarCode="setFocus('userCode')"/>
         </div>
         <div style="width: 80%;border-radius: 3px;margin: 10px 20px  ">
           <!-- 输输入用户名 -->
-          <dk-app-field ref="userCode" v-model="userCode" :label="$t('appUserCode')"
+          <dk-app-field ref="userCode"  :isOnceHideKeyboard="false" v-model="userCode" :label="$t('appUserCode')"
                         @changeBarCode="setFocus('userPwd')"/>
         </div>
         <div style="width: 80%;border-radius: 3px;margin: 10px 20px ">
           <!-- 输入密码 -->
-          <dk-app-field ref="userPwd" v-model="userPwd" :formatter-flg="false" type-input="password"
+          <dk-app-field  :isOnceHideKeyboard="false" ref="userPwd" v-model="userPwd" :formatter-flg="false" type-input="password"
                         :label="$t('appUserPw')"
                         @changeBarCode="login"/>
         </div>

+ 4 - 4
src/view-app/main/index.vue

@@ -182,10 +182,10 @@ export default {
     if (this.btnId) {
       document.getElementById(this.btnId).scrollIntoView(false)
     }
-    history.pushState(null, null, document.URL);
-    window.addEventListener('popstate', function () {
-      history.pushState(null, null, document.URL);
-    });
+    // history.pushState(null, null, document.URL);
+    // window.addEventListener('popstate', function () {
+    //   history.pushState(null, null, document.URL);
+    // });
   }
 
 }

+ 4 - 4
src/view-app/main/mine.vue

@@ -235,10 +235,10 @@ export default {
   created() {
     // 设置字体
     this.setActionFonts()
-    history.pushState(null, null, document.URL);
-    window.addEventListener('popstate', function () {
-      history.pushState(null, null, document.URL);
-    });
+    // history.pushState(null, null, document.URL);
+    // window.addEventListener('popstate', function () {
+    //   history.pushState(null, null, document.URL);
+    // });
   }
 }
 </script>

+ 4 - 4
src/view-app/main/other.vue

@@ -181,10 +181,10 @@ export default {
     if (this.btnId) {
       document.getElementById(this.btnId).scrollIntoView(false)
     }
-    history.pushState(null, null, document.URL);
-    window.addEventListener('popstate', function () {
-      history.pushState(null, null, document.URL);
-    });
+    // history.pushState(null, null, document.URL);
+    // window.addEventListener('popstate', function () {
+    //   history.pushState(null, null, document.URL);
+    // });
   }
 
 }

+ 4 - 4
src/view-app/main/report.vue

@@ -179,10 +179,10 @@ export default {
     if (this.btnId) {
       document.getElementById(this.btnId).scrollIntoView(false)
     }
-    history.pushState(null, null, document.URL);
-    window.addEventListener('popstate', function () {
-      history.pushState(null, null, document.URL);
-    });
+    // history.pushState(null, null, document.URL);
+    // window.addEventListener('popstate', function () {
+    //   history.pushState(null, null, document.URL);
+    // });
   }
 
 }

+ 38 - 27
src/view/core/system-setting/index.vue

@@ -18,11 +18,11 @@
     <card ref="tableCard">
       <div style="display: flex;width: 100%;height: 100%">
         <!-- 列表部分左侧   -->
-        <div style="width: 260px;">
+        <div style="width: 200px;">
           <DkTable
             ref="leftTable"
             :data="searchInfo"
-            :height="tableHeight-20"
+            :height="tableHeight-30"
             :page-flag="false"
             :page-total-flag="false"
             :show-setting-flag="false"
@@ -30,23 +30,23 @@
             :choose-flag="false"
             @current-change="currentChangeEvent($event)">
             <DkTableColumn :title="$t('className')" field="className"
-                           width="auto" :filter=false></DkTableColumn>
+                           width="auto" :filter=false :center-flag="true"></DkTableColumn>
           </DkTable>
         </div>
 
         <!-- 列表部分右侧   -->
-        <div style="margin-left: 5px;width:calc( 100% - 260px )">
+        <div style="margin-left: 5px;width:calc( 100% - 200px )">
           <DkTable
             ref="rightTable"
             :data="tableRightData"
-            :height="tableHeight-20"
+            :height="tableHeight-30"
             :page-flag="false"
             :page-total-flag="false"
             :show-setting-flag="false"
             :freeze="false"
             :choose-flag="false">
-            <DkTableColumn field="classCode"></DkTableColumn>
-            <DkTableColumn field="settingName" width="280"></DkTableColumn>
+            <DkTableColumn field="classCode" :title="$t('settingStyle')"  width="100"></DkTableColumn>
+            <DkTableColumn field="settingName" width="220"></DkTableColumn>
             <vxe-column show-overflow="ellipsis" field="settingValue" width="100" height="100" min-width="80" class-name="setting-value-class"
                         :title="$t('settingValue')"
             >
@@ -80,24 +80,24 @@
               </template>
 
             </vxe-column>
-            <vxe-column show-overflow="ellipsis" field="settingDefault" width="100" height="100" min-width="80"
-                        :title="$t('settingDefault')"
-            >
-              <template #default="{ row }">
-                <!--数字类型-->
-                <vxe-input v-if="row.valueKind == 'INT' || row.valueKind == 'NUM'" size="mini" :disabled=true
-                           v-model="row.settingDefault"></vxe-input>
-                <!--文本类型-->
-                <vxe-input v-if="row.valueKind == 'STR'" :disabled=true
-                           size="mini" v-model="row.settingDefault"></vxe-input>
-                <!--下拉框类型-->
-                <vxe-input v-if="row.valueKind == 'S-CHOICE'" :disabled=true
-                           size="mini" v-model="row.settingDefault"></vxe-input>
-                <!--布尔类型-->
-                <i-switch size="small" :disabled=true v-if="row.valueKind == 'BOOL'"
-                          v-model="row.settingDefault"></i-switch>
-              </template>
-            </vxe-column>
+<!--            <vxe-column show-overflow="ellipsis" field="settingDefault" width="100" height="100" min-width="80"-->
+<!--                        :title="$t('settingDefault')"-->
+<!--            >-->
+<!--              <template #default="{ row }">-->
+<!--                &lt;!&ndash;数字类型&ndash;&gt;-->
+<!--                <vxe-input v-if="row.valueKind == 'INT' || row.valueKind == 'NUM'" size="mini" :disabled=true-->
+<!--                           v-model="row.settingDefault"></vxe-input>-->
+<!--                &lt;!&ndash;文本类型&ndash;&gt;-->
+<!--                <vxe-input v-if="row.valueKind == 'STR'" :disabled=true-->
+<!--                           size="mini" v-model="row.settingDefault"></vxe-input>-->
+<!--                &lt;!&ndash;下拉框类型&ndash;&gt;-->
+<!--                <vxe-input v-if="row.valueKind == 'S-CHOICE'" :disabled=true-->
+<!--                           size="mini" v-model="row.settingDefault"></vxe-input>-->
+<!--                &lt;!&ndash;布尔类型&ndash;&gt;-->
+<!--                <i-switch size="small" :disabled=true v-if="row.valueKind == 'BOOL'"-->
+<!--                          v-model="row.settingDefault"></i-switch>-->
+<!--              </template>-->
+<!--            </vxe-column>-->
             <DkTableColumn field="settingDescription" width="auto"></DkTableColumn>
           </DkTable>
         </div>
@@ -297,6 +297,7 @@ export default {
      * @date   : 2023/1/30 17:21
      */
     saveData() {
+      this.loading = true;
       let params = []
       // 值发生变化的保存 valueChangeFlg为true值发生变化
       let list = this.tableRightData.filter(it => it.valueChangeFlg == true)
@@ -317,7 +318,6 @@ export default {
               ftyId: this.$store.state.user.ftyId,
             })
           } else {
-
             params.push({
               settingCode: it.settingCode,   //参数代码
               settingValue: it.settingValue, //参数值
@@ -329,7 +329,7 @@ export default {
       if (params && params.length > 0) {
         this.$refs.save.$el.focus()
         this.excute(this.$service.systemService, this.$service.systemService.updateSettingValues, params).then(res => {
-          if (res.code === 200) {
+          if (res.code === this.$config.SUCCESS_CODE) {
             this.$Message.success(this.$t('I_001', {'param': this.$v('save')}))
             let nowRow = this.$refs['leftTable'].getCurrentRow()
             if (nowRow != null) {
@@ -337,7 +337,10 @@ export default {
               this.getSettingData(nowRow.classCode)
             }
           }
+          this.loading = false;
         })
+      }else{
+        this.loading = false;
       }
     },
     /**
@@ -428,6 +431,14 @@ export default {
 /deep/.setting-value-class .vxe-cell{
   padding-left: 0 !important;
   padding-right: 0 !important;
+  display: flex !important;
+  align-items: center !important;
+  justify-content: center;
+}
+
+/deep/.vxe-input--inner{
+  text-align: center !important;
+  padding: 0 !important;
 }
 
 /deep/ .vxe-cell {

+ 1 - 0
src/view/mst/carr-kiln-car/index.vue

@@ -446,6 +446,7 @@ export default {
         if (res.code === this.$config.SUCCESS_CODE) {
           this.tableData = res.data
           //this.searchContent[1].valueFormat.data = res.data;
+          this.loading = false
         }
       })
     },

+ 37 - 13
src/view/mst/custom-report/form.vue

@@ -254,6 +254,7 @@ export default {
   data() {
     let self = this
     return {
+      handleSqlFlag:false,
       sqlModal: false,
       errorModal: false,
       settingNumberModal: false,
@@ -1271,29 +1272,39 @@ export default {
      */
     handleSqlScript(sqlItem) {
       let sqlScript = sqlItem.sqlScript
-      sqlScript = sqlScript.replaceAll('#{ftyId}', -1)
       let conditionData = this.$refs['conditionTable'].getTableDataFilter();
-      conditionData.forEach(t => {
-        // 日期范围
-        if (t.kind === this.$config.reportKind.dateRange) {
-          sqlScript = sqlScript.replaceAll('#{' + t.code?.trim() + 'Start' + '}', null)
-          sqlScript = sqlScript.replaceAll('#{' + t.code?.trim() + 'End' + '}', null)
-        } else {
-          sqlScript = sqlScript.replaceAll('#{' + t.code?.trim() + '}', null)
-        }
-      })
       // 不用控制严格,只要有跳转条件,其他页签的都处理下的(兼容link模式)
       this.sqlTabsOptions.forEach((t, index) => {
         if (t.changeScript) {
           let changeScripts = t.changeScript.trim().split(',');
           this.sqlTabsOptions.forEach((item, itemNo) => {
-            if(index != itemNo){
+            if (index != itemNo) {
               sqlScript = item.sqlScript
+              sqlScript = sqlScript.replaceAll('#{ftyId}', -1)
+              conditionData.forEach(t => {
+                // 日期范围
+                if (t.kind === this.$config.reportKind.dateRange) {
+                  sqlScript = sqlScript.replaceAll('#{' + t.code?.trim() + 'Start' + '}', null)
+                  sqlScript = sqlScript.replaceAll('#{' + t.code?.trim() + 'End' + '}', null)
+                } else {
+                  sqlScript = sqlScript.replaceAll('#{' + t.code?.trim() + '}', null)
+                }
+              })
               changeScripts.forEach(it => {
                 sqlScript = sqlScript.replaceAll('#{' + it + '}', null)
               })
             }
           })
+        }else{
+          conditionData.forEach(t => {
+            // 日期范围
+            if (t.kind === this.$config.reportKind.dateRange) {
+              sqlScript = sqlScript.replaceAll('#{' + t.code?.trim() + 'Start' + '}', null)
+              sqlScript = sqlScript.replaceAll('#{' + t.code?.trim() + 'End' + '}', null)
+            } else {
+              sqlScript = sqlScript.replaceAll('#{' + t.code?.trim() + '}', null)
+            }
+          })
         }
       })
       // let filters = this.sqlTabsOptions.filter(it => it.changeTabName == sqlItem.name)
@@ -1339,19 +1350,32 @@ export default {
       params.conditionDeleteList = this.$refs['conditionTable'].getDeleteData();
       // sql
       params.sqlList = this.sqlTabsOptions.copy();
+      let filters = null;
       params.sqlList.forEach((item, i) => {
         item.displayNo = i + 1;
-        let filters = this.sqlTabsOptions.filter(it => it.changeTabName === item.label);
-        item.changeScriptOthers = []
+        filters = this.sqlTabsOptions.filter(it => it.changeTabName === item.label);
         if (filters && filters.length > 0) {
           filters.forEach(it => {
             if (it.changeScript) {
+              if(!item.changeScriptOthers){
+                item.changeScriptOthers = []
+              }
               item.changeScriptOthers.pushNoRepeat(it.changeScript)
             }
           })
         }
         // 处理表格
         item.tableSettingList.forEach((it, index) => {
+          // 统计在列表中的跳转页签
+          if (it.changeTabName) {
+            filters = params.sqlList.filter(t => t.label === it.changeTabName);
+            if(filters && filters.length > 0){
+              if(!filters[0].changeScriptOthers){
+                filters[0].changeScriptOthers = []
+              }
+              filters[0].changeScriptOthers.pushNoRepeat(item.changeScript)
+            }
+          }
           // 宽度为空默认150
           it.width = it.width ? it.width : '150';
           // 数据类型如果为空默认是字符串

+ 15 - 12
src/view/mst/custom-report/report.vue

@@ -26,7 +26,7 @@
 
     <!-- 表格展示  -->
     <!--    {{form['tableData_' + tabIndex]}}-->
-    <div v-if="tabsOptions && tabsOptions[tabIndex] ">
+    <div v-if="tabsOptions && tabsOptions[tabIndex] && flgVisible">
       <DkTable slot="top" :id="'table-'+$options.name" :ref="'table-select-' + tabIndex"
                :data="form['tableData_' + tabIndex]"
                :height="tabsOptions.length > 1?this.tableHeight - 30:this.tableHeight"
@@ -71,6 +71,7 @@ export default {
   data() {
     return {
       reportId: '',
+      flgVisible:true,
       form: {},
       reportForm: {},
       tableData: [],// 报表数据
@@ -80,7 +81,7 @@ export default {
       tabsOptions: [], // tab数据源
       changeFlag: false,// 是否是跳转
       searchParams: {},// 查询条件
-      linkChangeTabs:[],// 点击链接跳转到相应的页签
+      linkChangeTabs:{},// 点击链接跳转到相应的页签
     }
   },
   methods: {
@@ -106,7 +107,7 @@ export default {
      * @date   : 2023/4/19 18:01
      */
     async chooseData(row, rowIndex,changeTabName) {
-      console.log('eee',row,rowIndex,changeTabName)
+      this.flgVisible = false
       if(!changeTabName){
         changeTabName = this.tabsOptions[this.tabIndex].changeTabName
       }
@@ -124,6 +125,7 @@ export default {
         }
         // 切换页签,处理小计
         this.changeTabHandleSubTotal();
+        this.flgVisible = true;
         this.$nextTick(() => {
           //查询条件
           this.setCondition(this.searchCond)
@@ -135,7 +137,7 @@ export default {
           if (changeScript.indexOf(',') >= 0) {
             let changeScripts = changeScript.split(',');
             changeScripts.forEach(it => {
-              params[it] = row[it]
+              params[it] = row[it]?row[it]:null
             })
           } else {
             params[changeScript] = row[changeScript]
@@ -144,7 +146,6 @@ export default {
           this.getData(params)              // 执行查询
           this.searchParams = {...params}  // 记录当时的查询条件
           this.changeFlag = true;
-
         })
       }
     },
@@ -179,6 +180,7 @@ export default {
      * @date   : 2023/3/30 8:48
      */
     handleChangeSqlTab(val) {
+      this.flgVisible = false
       this.$nextTick(() => {
         // 先记录现在的页签的表格翻页信息
         // console.log('this.pageInfo', this.pageInfo, this.tabsOptions[this.tabIndex])
@@ -189,6 +191,9 @@ export default {
         }
         // 切换页签,处理小计
         this.changeTabHandleSubTotal();
+        setTimeout(()=>{
+          this.flgVisible = true;
+        },200)
       })
     },
     /**
@@ -262,8 +267,9 @@ export default {
      * @author : 周兴
      * @date   : 2023/4/28 16:00
      */
-    handleLink(e){
-      this.chooseData(e);
+    handleLink(row,rowIndex, field){
+      let changeTabName = this.linkChangeTabs[field]
+      this.chooseData(row,rowIndex,changeTabName);
     },
     /**
      * @desc   : 设置小计行
@@ -515,7 +521,7 @@ export default {
      * @date   : 2023/3/28 19:55
      */
     handleTableSetting(row, index) {
-      let table = row.tableSettingList;
+      let table = row.tableSettingList?.copy();
       row.tableColumns = []
       this.showFooter = false;
       if (table && table.length > 0) {
@@ -533,10 +539,7 @@ export default {
             // 是否是链接
             if(it.flgLink){
               item.type = 'link'
-              this.linkChangeTabs.push({
-                field:it.code,
-                tabName:it.changeTabName
-              })
+              this.linkChangeTabs[it.code] = it.changeTabName
             }
             item.dataType = it.dataType ? it.dataType : this.$config.dataType.str
             if (it.flgSum) {

+ 93 - 45
src/view/mst/dictionary/index.vue

@@ -25,22 +25,42 @@
                   @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="dataId"
-               @pageChange="pageSizeChange">
-        <DkTableColumn field="dictCode" type="link" @on-link="handleLink(Object.assign($event,{button:'edit'}))"></DkTableColumn>
-        <DkTableColumn field="dataValue"></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="searchInfo"
+                 :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('dictCode')" field="dictName"
+                         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="tableHeight" primaryKey="dataId"
+                 @pageChange="pageSizeChange">
+          <DkTableColumn field="dataValue" type="link"
+                         @on-link="handleLink(Object.assign($event,{button:'edit'}))"></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"
@@ -78,6 +98,7 @@ export default {
   data() {
     let self = this
     return {
+      split: 0.2,// 分区的默认
       dataValue: 'dataValue',
       editAddModal: false,
       modalTitle: '',//新建编辑弹窗名称
@@ -102,6 +123,22 @@ export default {
   methods: {
     // region 一览界面操作
     /**
+     * @desc   : 左侧列表行变化事件
+     * @author : 王英杰
+     * @date   : 2023/2/2 17:23
+     */
+    currentChangeEvent({row}) {
+      if (row != null) {
+        this.dictCodeType = row.dictCode
+        // 导出额外的条件
+        this.exportCondition = {dictCode: this.dictCodeType}
+        let params = this.params
+        params.dictCode = row.dictCode
+        //查询型号类别列表的数据-右侧列表
+        this.searchData(params)
+      }
+    },
+    /**
      *   @desc   : switch停用启用
      *   @date   : 2022/12/21
      *   @author : 洪旭东
@@ -128,32 +165,39 @@ export default {
      *   @author : 洪旭东
      */
     getData(params) {
-      // 查询数据
-      return this.excute(this.$service.dictionaryDataService, this.$service.dictionaryDataService.selectByCond, params);
+      // return this.excute(this.$service.dictionaryDataService, this.$service.dictionaryDataService.selectByCond, params);
+      this.excute(this.$service.dictionaryDataService, this.$service.dictionaryDataService.selectByCond, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.tableData = res.data.list
+          this.loading = false;
+          if (params.currentPage == 1) {
+            this.pageInfo.total = res.data.total
+            this.pageInfo.currentPage = 1;
+          }
+        }
+      });
     },
     /**
-     * @desc   : 调用同一路由,需要使用这个方法去设置created的方法
-     * @author : 周兴
-     * @date   : 2023/2/8 12:55
+     * @desc   : 获取数据字典数据-左侧列表
+     * @author : 王英杰
+     * @date   : 2023/2/3 10:38
      */
-    createdInit(){
-      this.primaryKey = 'dataId'     // 设置主键
-      this.routeObjName = 'dictionaryData'  // 设置路由名称
-      if(this.formType === this.$config.dictionaryType.kilnType){    // 窑炉类型
-        this.dictCodeType = this.$config.dicCode.kilnDicCode
-      }else if(this.formType === this.$config.dictionaryType.moldingType){    // 成型线类型
-        this.dictCodeType = this.$config.dicCode.moldingDicCode
-      }else if(this.formType === this.$config.dictionaryType.carrierMaterial){    // 模具原料
-        this.dictCodeType = this.$config.dicCode.carrierMaterialDicCode
-      }else if(this.formType === this.$config.dictionaryType.unformedReason){    // 未成型原因
-        this.dictCodeType = this.$config.dicCode.unformedReasonDicCode
-      }else if(this.formType === this.$config.dictionaryType.processType){    // 工艺类别
-        this.dictCodeType = this.$config.dicCode.processTypeDicCode
-      }else if(this.formType === this.$config.dictionaryType.nodeType){    // 工序类别
-        this.dictCodeType = this.$config.dicCode.nodeTypeDicCode
+    getDataKindData() {
+      // 查询数据
+      let params = {
+        ftyId: this.$store.state.user.ftyId,
       }
-      // 导出额外的条件
-      this.exportCondition = {dictCode: this.dictCodeType}
+      this.excute(this.$service.commonService, this.$service.commonService.getDictionaryItemData, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.searchInfo = res.data
+          if (this.searchInfo.size() > 0) {
+            this.dictCodeType = this.searchInfo[0].dictCode
+            // 导出额外的条件
+            this.exportCondition = {dictCode: this.dictCodeType}
+          }
+
+        }
+      })
     },
     // endregion
 
@@ -172,7 +216,7 @@ export default {
         remarks: ''
       }
       // 加载最大序号
-      this.getMaxDisplayNo(this.$config.displayNoTable.dictionaryData);
+      this.getMaxDisplayNo(this.$config.displayNoTable.dictionaryData, {otherCond: 'dict_code = \'' + this.dictCodeType + '\''});
     },
     /**
      *   @desc   : 给参数赋值
@@ -199,7 +243,7 @@ export default {
      *   @author : 洪旭东
      */
     add() {
-      this.modalTitle = this.setTitle(this.$config.formMode.add, this.formType)
+      this.modalTitle = this.setTitle(this.$config.formMode.add, this.$t('dictionary'))
       this.modalParams = {
         button: this.$config.formMode.add,
       }
@@ -213,20 +257,20 @@ export default {
     initData(type) {
       if (type === this.$config.formMode.add) {
         // 加载最大序号
-        this.getMaxDisplayNo(this.$config.displayNoTable.dictionaryData);
+        this.getMaxDisplayNo(this.$config.displayNoTable.dictionaryData, {otherCond: 'dict_code = \'' + this.dictCodeType + '\''});
       }
     },
     /**
-    * @desc   : 编辑按钮事件
-    * @author : 常皓宁
-    * @date   : 2023/2/7 13:51
-    */
+     * @desc   : 编辑按钮事件
+     * @author : 常皓宁
+     * @date   : 2023/2/7 13:51
+     */
     edit(rows) {
       this.modalParams = {
         button: this.$config.formMode.edit,
         closeFlag: true
       }
-      this.modalTitle = this.setTitle(this.$config.formMode.edit, this.formType)
+      this.modalTitle = this.setTitle(this.$config.formMode.edit, this.$t('dictionary'))
       if (rows.length > 0) {
         this.detail(rows[0].dataId)
       }
@@ -248,6 +292,10 @@ export default {
     // endregion
   },
   created() {
+    this.primaryKey = 'dataId'     // 设置主键
+    this.routeObjName = 'dictionaryData'  // 设置路由名称
+    this.getDataKindData() //获取数据字典数据
+    this.initSearchFlag = false;  // 初始不进行默认查询
   },
 }
 </script>

+ 4 - 4
src/view/mst/label-print-layout/index.vue

@@ -93,10 +93,10 @@
       v-model="showSetTemplate"
       fullscreen
       :title="$v('searchSet')"
-      :footer-flag="false"
+      @modalOk="$refs.setting ? $refs.setting.save():null"
     >
       <Setting :label-kind="labelKind" :id="$refs['table-select'] ? $refs['table-select'].batchKeys[0]:null" v-if="showSetTemplate"
-      @close="showSetTemplate=false"/>
+      @close="showSetTemplate=false" ref="setting"/>
     </DkModal>
   </div>
 </template>
@@ -221,7 +221,7 @@ export default {
         remarks: ''
       }
       // 加载最大序号
-      this.getMaxDisplayNo(this.$config.displayNoTable.labelPrinterLayout);
+      this.getMaxDisplayNo(this.$config.displayNoTable.labelPrinterLayout, {otherCond: 'label_kind = \''+this.labelKind+'\''});
     },
     /**
      *   @desc   : 给参数赋值
@@ -278,7 +278,7 @@ export default {
     initData(type) {
       if (type === this.$config.formMode.add || type === this.$config.formMode.edit) {
         // 加载最大序号
-        this.getMaxDisplayNo(this.$config.displayNoTable.labelPrinterLayout);
+        this.getMaxDisplayNo(this.$config.displayNoTable.labelPrinterLayout, {otherCond: 'label_kind = \''+this.labelKind+'\''});
         // 获取打印模板分类
         this.getPrintTypeData();
       }

+ 8 - 31
src/view/mst/label-print-layout/setting.vue

@@ -28,13 +28,19 @@ export default {
   },
   methods: {
     /**
+     * @desc   : template中的保存
+     * @author : 洪旭东
+     * @date   : 2023-05-04 09:55
+     */
+    save() {
+      this.$refs.print.save()
+    },
+    /**
      * @desc   : 保存模板
      * @author : 姜宏超
      * @date   : 2022/5/5 10:46
      */
     saveTemplate(val) {
-      console.log(val)
-
       this.excute(this.$service.labelPrintLayoutService, this.$service.labelPrintLayoutService.update, {
         layoutId: this.id,
         layoutData: val.templateInfo
@@ -46,35 +52,6 @@ export default {
           this.$Message.error(res.message)
         }
       })
-
-      // let params = {
-      //   tmId: val.tmId,
-      //   tmName: val.name,
-      //   docCode: val.typeCode,
-      //   tmData: val.templateInfo,
-      //   displayNo: val.displayNo,
-      //   cpId: this.$store.state.user.cpId,
-      //   sysId: this.$store.state.user.sysId
-      // }
-      // if (val.tmId) {
-      //   PrintTemplateService.update(params).then(res => {
-      //     if (res.code === 200) {
-      //       this.$Message.success(res.message)
-      //       this.closeTag(this.$route)
-      //     } else {
-      //       this.$Message.error(res.message)
-      //     }
-      //   })
-      // } else {
-      //   PrintTemplateService.insert(params).then(res => {
-      //     if (res.code === 200) {
-      //       this.$Message.success(res.message)
-      //       this.closeTag(this.$route)
-      //     } else {
-      //       this.$Message.error(res.message)
-      //     }
-      //   })
-      // }
     },
     /**
      * @desc   : 重写计算表格高度方法,避免报错

+ 2 - 2
src/view/mst/product-defect/index.vue

@@ -229,7 +229,7 @@ export default {
         remarks: ''
       }
       // 加载最大序号
-      this.getMaxDisplayNo(this.$config.displayNoTable.productDefect);
+      this.getMaxDisplayNo(this.$config.displayNoTable.productDefect, {otherCond: 'defect_kind = \''+this.defectKind+'\''});
     },
     /**
      *   @desc   : 给参数赋值
@@ -270,7 +270,7 @@ export default {
     initData(type) {
       if (type === this.$config.formMode.add) {
         // 加载最大序号
-        this.getMaxDisplayNo(this.$config.displayNoTable.productDefect);
+        this.getMaxDisplayNo(this.$config.displayNoTable.productDefect, {otherCond: 'defect_kind = \''+this.defectKind+'\''});
       }
       if (type === this.$config.formMode.add || type === this.$config.formMode.edit) {
         this.getDefectTypeList();   // 加载缺陷分类数据

+ 215 - 1
src/view/report/kiln-car-status-report/index.vue

@@ -1,10 +1,224 @@
+<!-- @desc:窑车状态表  @auth:王英杰  @time:2023/3/4 19:31 -->
 <template>
+  <div class="main-div" ref="mainDiv">
+    <!--加载中-->
+    <loading :loading="loading"></loading>
 
+    <BaseIndexButtonGroup id="BaseIndexButtonGroup">
+      <template #left>
+        <!--    查询    -->
+        <BaseIndexButton right-button="mould-select" ref="search" name="search"></BaseIndexButton>
+        <!--    清空条件    -->
+        <BaseIndexButton right-button="mould-check-clear" ref="clear" name="clear"></BaseIndexButton>
+      </template>
+    </BaseIndexButtonGroup>
+
+    <!--  查询条件区域  -->
+    <div id="search-cond-div" ref="search-cond-div" style="margin-top: 1px;padding: 0">
+      <SearchCond ref="searchCond" v-model="searchCond"
+                  @collapse-change="collapseChange" :setFlag="false"
+                  :searchContent="searchContent"></SearchCond>
+    </div>
+
+    <!--  表格部分  -->
+    <div :style="'height: ' + tableHeight + 'px'" class="split-div-class">
+      <DkSplit mode="vertical" v-model="split" :height="tableHeight">
+        <DkTable slot="top" :id="'table-'+$options.name" ref="table-select" :data="tableData" multiple
+                 :height="this.tableHeight * split - 45" primaryKey="uniqueId" @pageChange="pageSizeChange"
+                 :pageFlag="true"
+                 :page-total="pageInfo.total"
+                 :current-page="pageInfo.currentPage"
+                 @current-change="currentChange($event)"
+                 name="table">
+          <!-- 窑炉编码 -->
+          <DkTableColumn field="kilnCode" width="200px" type="link"
+                         @on-link="handleLink(Object.assign($event,{button:'edit'}))"></DkTableColumn>
+          <!-- 窑炉类型 -->
+          <DkTableColumn field="kilnType"></DkTableColumn>
+          <!-- 窑车编码 -->
+          <DkTableColumn field="carCode"></DkTableColumn>
+          <!-- 当前工序 -->
+          <DkTableColumn field="currentNode"></DkTableColumn>
+          <!-- 最大产品数量 -->
+          <DkTableColumn field="maxProductNum"></DkTableColumn>
+        </DkTable>
+
+        <!--明细-->
+        <div slot="bottom">
+          <DkTabs v-model="detailModel" :options="detailOptions" @on-click="detailTabsClick"></DkTabs>
+          <!--生产数据-->
+          <DkTable v-show="detailModel===this.$config.KilnCarStatusText.productionData" :pageFlag="true" multiple
+                   primaryKey="itemId"
+                   :id="'table-'+$options.name"
+                   :height="this.tableHeight * (1-split) - 15"
+                   ref="not-counted-select"
+                   name="notCountedTable"
+                   :choose-flag="false"
+                   :data="productionDataData">
+            <!-- 当前工序-->
+            <DkTableColumn field="currentNode" width="180px"></DkTableColumn>
+            <!-- 开始时间-->
+            <DkTableColumn field="startTime"></DkTableColumn>
+            <!-- 生产工号-->
+            <DkTableColumn field="makeUserId"></DkTableColumn>
+            <!-- 操作者-->
+            <DkTableColumn field="opnUserName"></DkTableColumn>
+            <!-- 操作说明-->
+            <DkTableColumn field="operatingInstructions"></DkTableColumn>
+          </DkTable>
+
+          <!--窑车产品-->
+          <DkTable v-show="detailModel===this.$config.KilnCarStatusText.KilnCarProducts" :pageFlag="true" multiple
+                   primaryKey="itemId"
+                   :id="'table-'+$options.name"
+                   :height="this.tableHeight * (1-split) - 15"
+                   ref="counted-select"
+                   name="countedTable"
+                   :choose-flag="false"
+                   :data="kilnCarProductsData">
+            <!-- 产品条码-->
+            <DkTableColumn field="pdtBarcode"></DkTableColumn>
+            <!-- 产品编码-->
+            <DkTableColumn field="productCode"></DkTableColumn>
+            <!-- 窑车位置-->
+            <DkTableColumn field="kilnCarPlace"></DkTableColumn>
+            <!-- 生产工号-->
+            <DkTableColumn field="prodUserCode"></DkTableColumn>
+            <!-- 员工姓名-->
+            <DkTableColumn field="staffNames"></DkTableColumn>
+            <!-- 操作时间-->
+            <DkTableColumn field="operationTime"></DkTableColumn>
+            <!-- 操作者-->
+            <DkTableColumn field="opnUserName"></DkTableColumn>
+          </DkTable>
+        </div>
+      </DkSplit>
+    </div>
+  </div>
 </template>
 
 <script>
+import {indexMixin} from "@/mixins";
+
 export default {
-name: "kiln-car-status-report"
+  name: "kiln-car-status-report",
+  mixins: [indexMixin],
+  data() {
+    let self = this
+    return {
+      productionDataData: [],//生产数据数据源
+      kilnCarProductsData: [],//窑车产品数据
+      searchContent:
+        [
+          //  窑炉编码
+          {
+            itemCode: 'kilnCode',
+            valueFormat: {code: 'kilnIds', data: [], valueKey: 'kilnId', labelKey: 'kilnCode',},
+            valueKind: self.$config.docUserInput.sChoice
+          },
+          // 窑车编码
+          {
+            itemCode: 'carCode',
+          }],
+      //明细tab默认
+      detailModel: self.$config.KilnCarStatusText.productionData,
+      //明细tab可选
+      detailOptions: [{label: self.$t('productionData'), name: self.$config.KilnCarStatusText.productionData}, //生产数据
+        {label: self.$t('KilnCarProducts'), name: self.$config.KilnCarStatusText.KilnCarProducts},//窑车产品
+      ],
+      checkId: null,//总单id
+    }
+  },
+  methods: {
+    /**
+     *   @desc   : 行点击事件
+     *   @date   : 2023/2/27 14:11
+     *   @author : 寇珊珊
+     */
+    currentChange({row}) {
+      if (row != null) {
+        this.checkId = row.checkId
+        if (this.tableData && this.tableData.length > 0) {
+          this.getCarrierFlow(row.carrierId) //查询总单 item对应的 窑车产品
+          this.getProduction(row.carrierId) //查询总单 item对应的 生产数据
+        }
+      }
+    },
+    /**
+     *   @desc   : 明细切换
+     *   @date   : 2023/3/24 13:19
+     *   @author : 王英杰
+     */
+    detailTabsClick(val) {
+      if (val) {
+        this.detailModel = val
+      }
+    },
+    /**
+     * @desc   : 查询总单 item对应的 窑车产品
+     * @author : 王英杰
+     * @date   : 2023/4/28 16:42
+     */
+    getCarrierFlow(carrierId) {
+      this.excute(this.$service.reportCarrieFlowService, this.$service.reportCarrieFlowService.selectCarrierFlow,
+        {carrierId: carrierId}).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.kilnCarProductsData = res.data
+        }
+      })
+    },
+    /**
+     * @desc   : //查询总单 item对应的 生产数据
+     * @author : 王英杰
+     * @date   : 2023/4/28 16:42
+     */
+    getProduction(carrierId) {
+      this.excute(this.$service.reportCarrieFlowService, this.$service.reportCarrieFlowService.selectProduction,
+        {carrierId: carrierId}).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.productionDataData = res.data
+        }
+      })
+    },
+    /**
+     * @desc   : 获取查询数据
+     * @author : 王英杰
+     * @date   : 2023/4/28 14:07
+     */
+    getData(params) {
+      return this.excute(this.$service.reportCarrieFlowService, this.$service.reportCarrieFlowService.selectByCond, params)
+    },
+    /**
+     * @desc   : 获取窑车编码数据源
+     * @author : 王英杰
+     * @date   : 2023/2/7 14:09
+     */
+    getKilnCode() {
+      let params = {
+        ftyId: this.$store.state.user.ftyId,
+      }
+      this.excute(this.$service.reportCarrieFlowService, this.$service.reportCarrieFlowService.selectKlin, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          let list = this.searchContent.filter(it => it.valueFormat.code == 'kilnIds')
+          if (list.length > 0) {
+            list[0].valueFormat.data = res.data
+          }
+        }
+      })
+    },
+    /**
+     * @desc   : 加载数据
+     * @author : 王英杰
+     * @date   : 2023/1/29 11:03
+     */
+    initData() {
+      // 获取模具状态数据源
+      this.getKilnCode();
+    },
+  },
+  created() {
+    this.routeObjName = 'KilnCarStatusReport'  // 设置路由名称
+  }
 }
 </script>
 

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác