From b6a40a2d8fdcffb3accfc7e424c0726a87a59ddf Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期五, 05 十二月 2025 21:20:59 +0800
Subject: [PATCH] 提交

---
 项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue |  797 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 797 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue"
new file mode 100644
index 0000000..620c0a1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue"
@@ -0,0 +1,797 @@
+<template>
+  <div>
+    <vol-box
+      v-model="showDetialBox"
+      :lazy="true"
+      width="75%"
+      :padding="15"
+      title="鍗曟嵁鏄庣粏淇℃伅"
+    >
+      <div class="box-head">
+        <el-alert :closable="false" style="width: 100%">
+          <el-row>
+            <el-col :span="16">
+              <span>宸查�変腑 {{ selection.length }} 椤�</span>
+            </el-col>
+            <el-col :span="8">
+          <!--     <el-link
+                type="primary"
+                size="small"
+                style="float: right; height: 20px"
+                @click="lockstocks"
+                >閿佸畾搴撳瓨</el-link> -->
+
+              <el-link
+                type="primary"
+                size="small"
+                    v-if="isBatch === 0"
+                style="float: right; height: 20px"
+                @click="handleOpenPicking"
+                >鎷i��</el-link>
+                        <el-link
+                type="primary"
+                size="small"
+                style="float: right; height: 20px; margin-right: 10px"
+                  v-if="isBatch === 1"
+                @click="handleOpenBatchPicking"
+                >鍒嗘壒鎷i��</el-link>
+              <el-link
+                type="primary"
+                size="small"
+                   v-if="isBatch === 0"
+                style="float: right; height: 20px; margin-right: 10px"
+                @click="outbound"
+                >鐩存帴鍑哄簱</el-link
+              >
+               <el-link
+                type="primary"
+                size="small"
+                 v-if="isBatch === 1"
+                style="float: right; height: 20px; margin-right: 10px"
+                @click="outboundbatch"
+                >鍒嗘壒鍑哄簱</el-link
+              >
+              <el-link
+                type="primary"
+                size="small"
+                style="float: right; height: 20px; margin-right: 10px"
+                @click="getData"
+                >鍒锋柊</el-link
+              ></el-col
+            >
+          </el-row>
+        </el-alert>
+      </div>
+      <div class="box-table" style="margin-top: 1%">
+        <el-table
+          ref="singleTable"
+          :data="tableData"
+          style="width: 100%; height: 100%"
+          highlight-current-row
+          @current-change="handleCurrentChange"
+          height="500px"
+          @row-click="handleRowClick"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column type="selection" width="55"> </el-table-column>
+          <el-table-column
+            label="搴忓彿"
+            type="index"
+            fixed="left"
+            width="55"
+            align="center"
+          ></el-table-column>
+          <el-table-column
+            v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
+            :key="index"
+            :prop="item.prop"
+            :label="item.title"
+            :width="item.width"
+            align="center"
+          >
+            <template #default="scoped">
+              <div v-if="item.type == 'icon'">
+                <el-tooltip
+                  class="item"
+                  effect="dark"
+                  :content="item.title"
+                  placement="bottom"
+                  ><el-link
+                    type="primary"
+                    :disabled="getButtonEnable(item.prop, scoped.row)"
+                    @click="tableButtonClick(scoped.row, item)"
+                    ><i :class="item.icon" style="font-size: 22px"></i></el-link
+                ></el-tooltip>
+              </div>
+
+              <div v-else-if="item.type == 'tag'">
+                <el-tag size="small">
+                  {{ getDictionary(scoped.row, item) }}
+                </el-tag>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </vol-box>
+    <stock-select ref="child" @parentCall="parentCall"></stock-select>
+    <selected-stock
+      ref="selectedStock"
+      @parentCall="parentCall"
+    ></selected-stock>
+    <NoStockOut ref="NoStockOut" @parentCall="parentCall"></NoStockOut>
+  </div>
+</template>
+<script>
+import VolBox from "@/components/basic/VolBox.vue";
+import VolForm from "@/components/basic/VolForm.vue";
+import StockSelect from "./StockSelect.vue";
+import SelectedStock from "./SelectedStock.vue";
+import NoStockOut from "./NoStockOut.vue";
+import { h,createVNode, render,reactive  } from 'vue';
+import { ElDialog , ElForm, ElFormItem, ElSelect,ElOption, ElButton, ElInput, ElMessage } from 'element-plus';
+import { th } from 'element-plus/es/locale';
+
+export default {
+  components: { VolBox, VolForm, StockSelect, SelectedStock,NoStockOut},
+  data() {
+    return {
+      row: null,
+      isBatch :0,
+      showDetialBox: false,
+      flag: false,
+      currentRow: null,
+      selection: [],
+      tableData: [],
+      tableColumns: [
+        {
+          prop: "id",
+          title: "Id",
+          type: "int",
+          width: 90,
+          hidden: true,
+        },
+        {
+          prop: "orderId",
+          title: "鍑哄簱鍗曚富閿�",
+          type: "string",
+          width: 90,
+          hidden: true,
+        },
+        {
+          prop: "materielCode",
+          title: "鐗╂枡缂栧彿",
+          type: "string",
+          width: 150,
+        },
+        {
+          prop: "materielName",
+          title: "鐗╂枡鍚嶇О",
+          type: "string",
+          width: 150,
+        },
+        {
+          prop: "batchNo",
+          title: "鎵规鍙�",
+          type: "string",
+          width: 90,
+        },
+        {
+          prop: "supplyCode",
+          title: "渚涘簲鍟嗙紪鍙�",
+          type: "string",
+          width: 150,
+        },
+        {
+          prop: "orderQuantity",
+          title: "鍗曟嵁鏁伴噺",
+          type: "string",
+          width: 90,
+        },
+        {
+          prop: "lockQuantity",
+          title: "閿佸畾鏁伴噺",
+          type: "int",
+          width: 90,
+        },
+        {
+          prop: "overOutQuantity",
+          title: "宸插嚭鏁伴噺",
+          type: "string",
+          width: 90,
+        },
+        {
+          prop: "overOutQuantity",
+          title: "鎸枡鏁伴噺",
+          type: "string",
+          width: 90,
+        },
+        {
+          prop: "unit",
+          title: "鍗曚綅",
+          type: "string",
+          width: 90,
+        },
+        {
+          prop: "orderDetailStatus",
+          title: "璁㈠崟鏄庣粏鐘舵��",
+          type: "tag",
+          width: 90,
+          bindKey: "orderDetailStatusEnum",
+        },
+        {
+          prop: "assignStock",
+          title: "鎸囧畾搴撳瓨",
+          type: "icon",
+          width: 90,
+          hidden:true,
+          icon: "el-icon-s-grid",
+        },
+        {
+          prop: "viewDetail",
+          title: "鍑哄簱璇︾粏",
+          type: "icon",
+          width: 90,
+          icon: "el-icon-s-operation",
+        },
+        {
+          prop: "creater",
+          title: "鍒涘缓浜�",
+          type: "string",
+          width: 90,
+        },
+        {
+          prop: "createDate",
+          title: "鍒涘缓鏃堕棿",
+          type: "datetime",
+          width: 160,
+        },
+        {
+          prop: "modifier",
+          title: "淇敼浜�",
+          type: "string",
+          width: 100,
+        },
+        {
+          prop: "modifyDate",
+          title: "淇敼鏃堕棿",
+          type: "datetime",
+          width: 160,
+        },
+        {
+          prop: "remark",
+          title: "澶囨敞",
+          type: "string",
+        },
+      ],
+      paginations: {
+        sort: "id",
+        order: "desc",
+        Foots: "",
+        total: 0,
+        // 2020.08.29澧炲姞鑷畾涔夊垎椤垫潯澶у皬
+        sizes: [30, 60, 100, 120],
+        size: 30, // 榛樿鍒嗛〉澶у皬
+        Wheres: [],
+        page: 1,
+        rows: 30,
+      },
+      searchFormOptions: [
+        [
+          {
+            title: "鍗曟嵁缂栧彿",
+            field: "allocation_code",
+            type: "like",
+          },
+          {
+            title: "鍗曟嵁绫诲瀷",
+            field: "allocation_type",
+            type: "select",
+            dataKey: "OrderType",
+            data: [],
+          },
+          {
+            title: "鍗曟嵁鐘舵��",
+            field: "allocation_state",
+            type: "select",
+            dataKey: "OrderState",
+            data: [],
+          },
+        ],
+      ],
+      searchFormFields: {
+        allocation_code: "",
+        allocation_type: "",
+        allocation_state: "",
+      },
+      dictionaryList: null,
+    };
+  },
+  methods: {
+    open(row) {
+      this.row = row;
+      this.showDetialBox = true;
+      console.log(this.row);  
+      this.isBatch = row.isBatch;
+      this.getDictionaryData();
+      this.getData();
+    },
+    getData() {
+      var wheres = [{ name: "orderId", value: this.row.id }];
+      var param = {
+        page: this.paginations.page,
+        rows: this.paginations.rows,
+        sort: this.paginations.sort,
+        order: this.paginations.order,
+        wheres: JSON.stringify(wheres), // 鏌ヨ鏉′欢锛屾牸寮忎负[{ name: "瀛楁", value: "xx" }]
+      };
+      this.http
+        .post("api/AllocateOrderDetail/GetPageData", param, "鏌ヨ涓�")
+        .then((x) => {
+          this.tableData = x.rows;
+        });
+    },
+    tableButtonClick(row, column) {
+      if (column.prop == "assignStock") {
+        this.$refs.child.open(row);
+      } else if (column.prop == "NoStockOut") {
+        this.$refs.NoStockOut.open(row);
+      }else{
+          //鐐瑰嚮鎵撳紑鍑哄簱璇︽儏
+        this.$refs.selectedStock.open(row);
+      }
+    },
+    lockstocks() {
+      if (this.selection.length === 0) {
+        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+      }
+      var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
+      this.http
+        .post("api/OutboundOrderDetail/LockOutboundStocks", keys, "鏁版嵁澶勭悊涓�")
+        .then((x) => {
+          if (!x.status) return this.$message.error(x.message);
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.showDetialBox = false;
+          this.$emit("parentCall", ($vue) => {
+            $vue.getData();
+          });
+        });
+    },
+    // 鎵撳紑鎷i�夐〉闈�
+   handleOpenPicking() {
+      this.$router.push({
+        path: '/outbound/picking',
+        query: { orderId: this.row.id ,orderNo:this.row.orderNo}
+      })
+    },
+    handleOpenBatchPicking() {
+      this.$router.push({ 
+        path: '/outbound/batchpicking',
+        query: { orderId: this.row.id ,orderNo:this.row.orderNo}})
+    },
+    outbound() {
+      if (this.selection.length === 0) {
+        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+      }
+      const platformOptions = [{label:'绔欏彴2',value:'2-1'},{label:'绔欏彴3',value:'3-1'}];
+      const mountNode = document.createElement('div');
+      document.body.appendChild(mountNode);
+
+      // 2. 琛ㄥ崟鏁版嵁锛堥粯璁ら�変腑绔欏彴3锛�
+      const formData = reactive({
+        selectedPlatform: platformOptions[0].value // 榛樿缁戝畾銆岀珯鍙�3銆嶇殑value
+      });
+
+      // 3. 鍔ㄦ�佸垱寤哄脊绐楃粍浠�
+      const vnode = createVNode(ElDialog, {
+        title: '鍑哄簱鎿嶄綔 - 閫夋嫨鍑哄簱绔欏彴',
+        width: '500px',
+        modelValue: true,
+        appendToBody: true,
+        'onUpdate:modelValue': (isVisible) => {
+          if (!isVisible) {
+            render(null, mountNode);
+            document.body.removeChild(mountNode);
+          }
+        }, 
+        style: {
+          padding: '20px 0',
+          borderRadius: '8px'
+        }
+      }, {
+        default: () => h(ElForm, {
+          model: formData,
+          rules: {
+            selectedPlatform: [
+              { required: true, message: '璇烽�夋嫨鍑哄簱绔欏彴', trigger: 'change' }
+            ]
+          },
+          ref: 'outboundForm',
+          labelWidth: '100px',
+          style: {
+            padding: '0 30px'
+          }
+        }, [
+          // 鍑哄簱绔欏彴閫夋嫨椤癸紙鏍稿績琛ㄥ崟椤癸級
+          h(ElFormItem, {
+            label: '鍑哄簱绔欏彴',
+            prop: 'selectedPlatform',
+            style: {
+              marginBottom: '24px'
+            }
+          }, [
+            h(ElSelect, {
+              placeholder: '璇烽�夋嫨鍑哄簱绔欏彴锛�3-12锛�',
+              modelValue: formData.selectedPlatform,
+              'onUpdate:modelValue': (val) => {
+                formData.selectedPlatform = val;
+              },
+              style: {
+                width: '100%',
+                height: '40px',
+                borderRadius: '4px',
+                borderColor: '#dcdfe6'
+              }
+            }, platformOptions.map(platform => 
+              h(ElOption, { label: platform.label, value: platform.value })
+            ))
+          ]),
+          // 搴曢儴鎸夐挳鍖�
+          h('div', {
+            style: {
+              textAlign: 'right',
+              marginTop: '8px',
+              paddingRight: '4px'
+            }
+          }, [
+            h(ElButton, {
+              type: 'text',
+              onClick: () => {
+                render(null, mountNode);
+                document.body.removeChild(mountNode);
+                ElMessage.info('鍙栨秷鍑哄簱鎿嶄綔');
+              },
+              style: {
+                marginRight: '8px',
+                color: '#606266'
+              }
+            }, '鍙栨秷'),
+            h(ElButton, {
+              type: 'primary',
+              onClick: async () => {
+                const formRef = vnode.component.refs.outboundForm;
+                try {
+                  // 琛ㄥ崟鏍¢獙
+                  await formRef.validate();
+                } catch (err) {
+                  return;
+                }
+
+                // 4. 鏋勯�犺姹傚弬鏁帮紙閫変腑鍗曟嵁ID + 閫夋嫨鐨勫嚭搴撶珯鍙帮級
+                const keys = this.selection.map((item) => item.id);
+                const requestParams = {
+                  taskIds: keys,
+                  outboundPlatform: formData.selectedPlatform // 鍑哄簱绔欏彴
+                };
+
+                // 5. 璋冪敤鍑哄簱鎺ュ彛
+                this.http
+                  .post("api/Task/GenerateOutboundTasks", requestParams, "鏁版嵁澶勭悊涓�")
+                  .then((x) => {
+                    if (!x.status) return ElMessage.error(x.message);
+                    
+                    ElMessage.success("鎿嶄綔鎴愬姛");
+                    this.showDetialBox = false; // 鍏抽棴璇︽儏妗�
+                    this.$emit("parentCall", ($vue) => {
+                      $vue.getData(); // 閫氱煡鐖剁粍浠跺埛鏂�
+                    });
+                    // 鍏抽棴寮圭獥
+                    render(null, mountNode);
+                    document.body.removeChild(mountNode);
+                  })
+                  .catch(() => {
+                    ElMessage.error('璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯');
+                  });
+              },
+              style: {
+                borderRadius: '4px',
+                padding: '8px 20px'
+              }
+            }, '纭畾鍑哄簱')
+          ])
+        ])
+      });
+
+      // 缁戝畾app涓婁笅鏂囷紝纭繚El缁勪欢姝e父宸ヤ綔
+      vnode.appContext = this.$.appContext;
+      render(vnode, mountNode);
+    },
+    outboundbatch() {
+  if (this.selection.length === 0) {
+    return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+  }
+    if (this.selection.length>1) {
+    return this.$message.error("鍙兘閫夋嫨涓�鏉″崟鎹槑缁嗚繘琛屽垎鎵瑰嚭搴�");
+  }
+  const platformOptions = [{label:'绔欏彴2',value:'2-1'},{label:'绔欏彴3',value:'3-1'}];
+  const mountNode = document.createElement('div');
+  document.body.appendChild(mountNode);
+
+  // 2. 琛ㄥ崟鏁版嵁锛堥粯璁ら�変腑绔欏彴3锛屾柊澧炲皬鏁板瓧娈碉級
+  const formData = reactive({
+    selectedPlatform: platformOptions[0].value, // 榛樿缁戝畾銆岀珯鍙�3銆嶇殑value
+    outboundDecimal: '' // 鏂板锛氬皬鏁拌緭鍏ユ瀛楁
+  });
+
+  // 3. 鍔ㄦ�佸垱寤哄脊绐楃粍浠�
+  const vnode = createVNode(ElDialog, {
+    title: '鍑哄簱鎿嶄綔 - 閫夋嫨鍑哄簱绔欏彴',
+    width: '500px',
+    modelValue: true,
+    appendToBody: true,
+    'onUpdate:modelValue': (isVisible) => {
+      if (!isVisible) {
+        render(null, mountNode);
+        document.body.removeChild(mountNode);
+      }
+    }, 
+    style: {
+      padding: '20px 0',
+      borderRadius: '8px'
+    }
+  }, {
+    default: () => h(ElForm, {
+      model: formData,
+      rules: {
+        selectedPlatform: [
+          { required: true, message: '璇烽�夋嫨鍑哄簱绔欏彴', trigger: 'change' }
+        ],
+        // 鏂板锛氬皬鏁板瓧娈甸獙璇佽鍒欙紙蹇呭~ + 鏈夋晥灏忔暟鏍煎紡锛�
+        outboundDecimal: [
+          { required: true, message: '璇疯緭鍏ュ皬鏁版暟鍊�', trigger: 'blur' },
+          { 
+            validator: (rule, value, callback) => {
+              // 楠岃瘉瑙勫垯锛氭鏁般�佹敮鎸佸皬鏁扮偣鍚庢渶澶�2浣嶏紙鍙牴鎹渶姹傝皟鏁村皬鏁颁綅鏁帮級
+              const decimalReg = /^(([1-9]\d*)|0)(\.\d{1,2})?$/;
+              if (value && !decimalReg.test(value)) {
+                callback(new Error('璇疯緭鍏ユ湁鏁堢殑灏忔暟锛堟鏁帮紝鏈�澶�2浣嶅皬鏁帮級'));
+              } else {
+                callback();
+              }
+            },
+            trigger: 'blur'
+          }
+        ]
+      },
+      ref: 'outboundForm',
+      labelWidth: '100px',
+      style: {
+        padding: '0 30px'
+      }
+    }, [
+      // 鍑哄簱绔欏彴閫夋嫨椤癸紙鏍稿績琛ㄥ崟椤癸級
+      h(ElFormItem, {
+        label: '鍑哄簱绔欏彴',
+        prop: 'selectedPlatform',
+        style: {
+          marginBottom: '24px'
+        }
+      }, [
+        h(ElSelect, {
+          placeholder: '璇烽�夋嫨鍑哄簱绔欏彴锛�3-12锛�',
+          modelValue: formData.selectedPlatform,
+          'onUpdate:modelValue': (val) => {
+            formData.selectedPlatform = val;
+          },
+          style: {
+            width: '100%',
+            height: '40px',
+            borderRadius: '4px',
+            borderColor: '#dcdfe6'
+          }
+        }, platformOptions.map(platform => 
+          h(ElOption, { label: platform.label, value: platform.value })
+        ))
+      ]),
+      // 鏂板锛氬皬鏁拌緭鍏ユ琛ㄥ崟椤�
+      h(ElFormItem, {
+        label: '鍑哄簱鏁�', // 鍙牴鎹笟鍔¢渶姹備慨鏀规爣绛惧悕锛堝鈥滃嚭搴撴暟閲忊�濃�滈噸閲忊�濈瓑锛�
+        prop: 'outboundDecimal',
+        style: {
+          marginBottom: '24px'
+        }
+      }, [
+        h(ElInput, {
+          type: 'number', // 鏁板瓧绫诲瀷锛屽師鐢熸敮鎸佸皬鏁拌緭鍏�
+          placeholder: '璇疯緭鍏ュ皬鏁版暟鍊硷紙鏈�澶�2浣嶅皬鏁帮級',
+          modelValue: formData.outboundDecimal,
+          'onUpdate:modelValue': (val) => {
+            formData.outboundDecimal = val;
+          },
+          style: {
+            width: '100%',
+            height: '40px',
+            borderRadius: '4px',
+            borderColor: '#dcdfe6'
+          },
+          step: '0.01', // 姝ラ暱0.01锛岀偣鍑讳笂涓嬬澶存椂鎸�0.01澧炲噺
+          precision: 2, // 闄愬埗鏈�澶氳緭鍏�2浣嶅皬鏁帮紙Element Plus灞炴�э級
+          min: 0.01, // 鍙�夛細闄愬埗鏈�灏忓�间负0.01锛岄伩鍏嶈緭鍏�0鎴栬礋鏁�
+        })
+      ]),
+      // 搴曢儴鎸夐挳鍖�
+      h('div', {
+        style: {
+          textAlign: 'right',
+          marginTop: '8px',
+          paddingRight: '4px'
+        }
+      }, [
+        h(ElButton, {
+          type: 'text',
+          onClick: () => {
+            render(null, mountNode);
+            document.body.removeChild(mountNode);
+            ElMessage.info('鍙栨秷鍒嗘壒鍑哄簱鎿嶄綔');
+          },
+          style: {
+            marginRight: '8px',
+            color: '#606266'
+          }
+        }, '鍙栨秷'),
+        h(ElButton, {
+          type: 'primary',
+          onClick: async () => {
+            const formRef = vnode.component.refs.outboundForm;
+            try {
+              // 琛ㄥ崟鏍¢獙锛堜細鍚屾椂鏍¢獙鍑哄簱绔欏彴鍜屽皬鏁板瓧娈碉級
+              await formRef.validate();
+            } catch (err) {
+              return;
+            }
+console.log(this.selection);
+            // 4. 鏋勯�犺姹傚弬鏁帮紙鏂板灏忔暟瀛楁锛�
+            const keys = this.selection.map((item) => item.id);
+            const requestParams = {
+              orderDetailId: keys[0], // 鍒嗘壒鍑哄簱浠呮敮鎸佸崟鏉℃槑缁�
+              outboundPlatform: formData.selectedPlatform, // 鍑哄簱绔欏彴
+              batchQuantity: formData.outboundDecimal // 鏂板锛氬皬鏁板瓧娈典紶缁欏悗绔�
+            };
+
+            // 5. 璋冪敤鍑哄簱鎺ュ彛
+            this.http
+              .post("api/Task/GenerateOutboundBatchTasks", requestParams, "鏁版嵁澶勭悊涓�")
+              .then((x) => {
+                if (!x.status) return ElMessage.error(x.message);
+                
+                ElMessage.success("鎿嶄綔鎴愬姛");
+                this.showDetialBox = false; // 鍏抽棴璇︽儏妗�
+                this.$emit("parentCall", ($vue) => {
+                  $vue.getData(); // 閫氱煡鐖剁粍浠跺埛鏂�
+                });
+                // 鍏抽棴寮圭獥
+                render(null, mountNode);
+                document.body.removeChild(mountNode);
+              })
+              .catch(() => {
+                ElMessage.error('璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯');
+              });
+          },
+          style: {
+            borderRadius: '4px',
+            padding: '8px 20px'
+          }
+        }, '纭畾鍒嗘壒鍑哄簱')
+      ])
+    ])
+  });
+
+  // 缁戝畾app涓婁笅鏂囷紝纭繚El缁勪欢姝e父宸ヤ綔
+  vnode.appContext = this.$.appContext;
+  render(vnode, mountNode);
+},
+      
+
+    setCurrent(row) {
+      this.$refs.singleTable.setCurrentRow(row);
+    },
+    handleCurrentChange(val) {
+      this.currentRow = val;
+    },
+    getButtonEnable(propName, row) {
+      if (propName == "assignStock") {
+        if (
+          row.orderDetailStatus !== 0 &&
+          row.orderDetailStatus !== 60 &&
+          row.orderDetailStatus !== 70 &&
+          row.orderDetailStatus !== 80
+        ) {
+          return true;
+        } else {
+          return false;
+        }
+      }
+      return false;
+    },
+    parentCall(fun) {
+      if (typeof fun != "function") {
+        return console.log("鎵╁睍缁勪欢闇�瑕佷紶鍏ヤ竴涓洖璋冩柟娉曟墠鑳借幏鍙栫埗绾ue瀵硅薄");
+      }
+      fun(this);
+    },
+    handleRowClick(row) {
+      this.$refs.singleTable.toggleRowSelection(row);
+    },
+    handleSelectionChange(val) {
+      this.selection = val;
+    },
+    getDictionaryData() {
+      if (this.dictionaryList) {
+        return;
+      }
+      var param = [];
+      this.tableColumns.forEach((x) => {
+        if (x.type == "tag" && x.bindKey != "") {
+          param.push(x.bindKey);
+        }
+      });
+      this.http
+        .post("api/Sys_Dictionary/GetVueDictionary", param, "鏌ヨ涓�")
+        .then((x) => {
+          if (x.length > 0) {
+            this.dictionaryList = x;
+          }
+        });
+    },
+    getDictionary(row, column) {
+      if (this.dictionaryList) {
+        var item = this.dictionaryList.find((x) => x.dicNo == column.bindKey);
+        if (item) {
+          var dicItem = item.data.find((x) => x.key == row[column.prop]);
+          console.log(dicItem);
+          if (dicItem) {
+            return dicItem.value;
+          } else {
+            return row[column.prop];
+          }
+        } else {
+          return row[column.prop];
+        }
+      }
+    },
+  },
+};
+</script>
+<style scoped>
+.text-button {
+  border: 0px;
+}
+</style>
+
+<style>
+.text-button:hover {
+  background-color: #f0f9eb !important;
+}
+
+.el-table .warning-row {
+  background: oldlace;
+}
+
+.box-table .el-table tbody tr:hover > td {
+  background-color: #d8e0d4 !important;
+  /* color: #ffffff; */
+}
+
+.box-table .el-table tbody tr.current-row > td {
+  background-color: #f0f9eb !important;
+  /* color: #ffffff; */
+}
+
+.el-table .success-row {
+  background: #f0f9eb;
+}
+
+.box-table .el-table {
+  border: 1px solid #ebeef5;
+}
+</style>

--
Gitblit v1.9.3