| 
					
				 | 
			
			
				@@ -0,0 +1,199 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <a-modal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    centered 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    class="chooseImport-modal" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :footer="null" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :maskClosable="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    title="确认导入" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    v-model="isShow" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @cancle="isShow=false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width="80%"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div class="chooseImport-con"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <!-- 可导入数据 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <p class="">可导入数据{{ loadData.length }}条</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <a-table 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        class="sTable" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ref="table" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :rowKey="(record) => record.allocateSn" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :columns="nowColumns" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :dataSource="loadData" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :loading="loading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :scroll="{ y: 200 }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :pagination="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bordered> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </a-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <a-divider /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <!-- 不可导入数据 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <p class="red">不可导入数据{{ unLoadData.length }}条</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <a-table 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        class="unTable" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ref="unTable" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :rowKey="(record) => record.errorDesc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :columns="nowUnColumns" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :dataSource="unLoadData" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :loading="loading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :scroll="{ y: 200 }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :pagination="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        bordered> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <template slot="errorMsg" slot-scope="text,record"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <a-popover placement="topRight"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <template slot="content"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <p v-for="d in record.importErrorMsgSet">{{ d }}</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <a-button type="link"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              查看 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </a-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </a-popover> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </a-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <!-- 按钮 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div class="btn-con"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <a-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          id="chooseImport-submit" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          size="large" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :class="loadData.length==0?'button-grey':'button-primary'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @click="handleSubmit" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style="padding: 0 40px;">确认导入</a-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <a-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          id="chooseImport-cancel" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          size="large" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class="button-cancel" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @click="isShow=false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style="padding: 0 40px;margin-left: 15px;">取消</a-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <a-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          id="chooseImport-error" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          size="large" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class="button-error" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @click="handleError" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style="padding: 0 40px;margin-left: 15px;">导出错误项</a-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </a-modal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { hdExportExcel } from '@/libs/exportExcel' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { salesDetailFailExcel } from '@/api/salesDetail' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: 'ChooseImportModal', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  props: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    openModal: { //  弹框显示状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: Boolean, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      default: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    paramsData: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: Object, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      default: () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      isShow: this.openModal, //  是否打开弹框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      nowColumns: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '序号', dataIndex: 'no', width: '8%', align: 'center' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '产品编码', dataIndex: 'productCode', width: '25%', align: 'center', customRender: function (text) { return text || '--' } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '产品名称', dataIndex: 'productName', width: '25%', align: 'center', customRender: function (text) { return text || '--' } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '仓库', dataIndex: 'warehouseName', width: '14%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '仓位', dataIndex: 'warehouseLocationName', width: '14%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '售价', dataIndex: 'importPrice', width: '14%', align: 'center', customRender: function (text) { return text || '--' } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '数量', dataIndex: 'importQty', width: '14%', align: 'center', customRender: function (text) { return text || '--' } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '单位', dataIndex: 'importProductUnit', align: 'center', width: '15%', customRender: function (text) { return text || '--' } } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      loadData: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      nowUnColumns: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '序号', dataIndex: 'no', width: '9%', align: 'center' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '产品编码', dataIndex: 'productCode', width: '20%', align: 'center', customRender: function (text) { return text || '--' } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '仓库', dataIndex: 'warehouseName', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '仓位', dataIndex: 'warehouseLocationName', width: '10%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '售价', dataIndex: 'importPrice', width: '10%', align: 'center', customRender: function (text) { return text || '--' } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '数量', dataIndex: 'importQty', width: '20%', align: 'center', customRender: function (text) { return text || '--' } }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { title: '错误说明', scopedSlots: { customRender: 'errorMsg' }, width: '10%', align: 'center' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      unLoadData: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      loading: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getData () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const paramsData = JSON.parse(JSON.stringify(this.paramsData)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loadData = paramsData.rightList || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.unLoadData = paramsData.errorList || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loadData.map((item, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        item.no = index + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        item.salesBillNo = paramsData.salesBillNo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        item.salesBillSn = paramsData.salesBillSn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.unLoadData.map((item, index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        item.no = index + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        item.salesBillNo = paramsData.salesBillNo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        item.salesBillSn = paramsData.salesBillSn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 确认导入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleSubmit () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (this.paramsData.rightList.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$message.warning('无可导入的产品!') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const data = this.paramsData.rightList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        data.map(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          item.salesBillNo = this.paramsData.salesBillNo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          item.salesBillSn = this.paramsData.salesBillSn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$emit('ok', data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.isShow = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 导出 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleError () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const _this = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (_this.paramsData.errorList.length < 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _this.$message.info('暂无可导出错误项~') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      _this.spinning = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      hdExportExcel(salesDetailFailExcel, _this.paramsData.errorList, '销售产品导出错误项', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _this.spinning = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  watch: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //  父页面传过来的弹框状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    openModal (newValue, oldValue) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.isShow = newValue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //  重定义的弹框状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isShow (newValue, oldValue) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!newValue) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$emit('close') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.loadData = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.unLoadData = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.getData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style lang="less" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .chooseImport-modal{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .chooseImport-con{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .red{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        color: #f30; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .btn-con{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        text-align: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        margin: 30px 0 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .button-cancel,.button-error{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          font-size: 12px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |