yusheng 1 год назад
Родитель
Сommit
24b7a6012c

+ 1 - 1
src/BIZComponents/inventoryTableDetails.vue

@@ -536,7 +536,7 @@
         console.log(data, 'data');
         let productList =
           (data &&
-            (data.quoteProductList || data.productList || data.detailList)) ||
+            (data.redressProductList ||data.quoteProductList || data.productList || data.detailList)) ||
           [];
         if (productList) {
           this.form.datasource = productList;

+ 4 - 4
src/views/financialManage/components/planDialog.vue

@@ -181,10 +181,10 @@ export default {
     },
     /* 表格数据源 */
     datasource({page, limit, where, order}) {
-      alert(this.collectionId)
-      if(this.collectionId){
-        where['supplierId']=this.collectionId
-      }
+      // alert(this.collectionId)
+      // if(this.collectionId){
+      //   where['supplierId']=this.collectionId
+      // }
       return getTableList({
         pageNum: page,
         size: limit,

+ 14 - 2
src/views/financialManage/feeManage/feeApplication/addOrEditDialog.vue

@@ -185,6 +185,7 @@
       v-if="customerListDialogFlag"
       :customerListDialogFlag.sync="customerListDialogFlag"
       ref="customerListDialogRef"
+     
       @changeParent="getCustomerData"
     ></customer-list-dialog>
     <process-submit-dialog
@@ -320,10 +321,14 @@
       //获取选择 供应商/客户 数据
       async getCustomerData(params) {
         let { bankList } = await contactDetail(params.id);
-        this.form.bankName = bankList[0].bankName;
+        this.form.bankName = bankList[0]?.bankName;
         this.form.collectionId = params.id;
         this.form.collectionName = params.name;
-        this.form.bankAccount = bankList[0].accountNo;
+        this.form.bankAccount = bankList[0]?.accountNo;
+        this.form.amount =''
+
+
+        this.$refs.feeRelatedInfoTable.clearData();
         // this.setSelectData(params)
       },
       //获取分类管理中的数据
@@ -378,6 +383,13 @@
       },
       handleDocumentType(val, oldVal) {
         this.$message.warning('单据类型发生变化,请重新选择业务类型');
+        this.form=Object.assign({},this.form,{
+          collectionName:'',
+          collectionId:'',
+          amount:'',
+          bankAccount:'',
+          bankName:''
+        })
         this.$refs.feeRelatedInfoTable.clearData();
       },
       setTotalPrice(val) {

+ 377 - 349
src/views/purchasingManage/purchaseOrder/accountstatement/components/inventoryTable.vue

@@ -1,37 +1,57 @@
 <template>
   <div>
-    <div v-for="(item) in datasource" style="margin-bottom: 10px">
+    <div v-for="item in datasource" style="margin-bottom: 10px">
       <div>
-        <div style="margin-bottom: 10px;font-weight: bold;">
+        <div style="margin-bottom: 10px; font-weight: bold">
           <div>
             <el-divider direction="vertical"></el-divider>
             <span>采购订单:</span>
             <span>{{ item.orderNo }}</span>
             <el-divider direction="vertical"></el-divider>
             <span>计价方式:</span>
-            <span> {{ item.pricingWay == 1 ? '按数量计费' : '按重量计费' }}</span>
+            <span>
+              {{ item.pricingWay == 1 ? '按数量计费' : '按重量计费' }}</span
+            >
             <el-divider direction="vertical"></el-divider>
             <span>总金额:</span>
-            <span>{{item.amountTotalPrice}}</span>
+            <span>{{ item.amountTotalPrice }}</span>
             <el-divider direction="vertical"></el-divider>
             <span>应收金额:</span>
-            <span>{{item.amountReceivablePrice}}</span>
+            <span>{{ item.amountReceivablePrice }}</span>
             <el-divider direction="vertical"></el-divider>
             <span>应付金额:</span>
-            <span>{{item.amountPayablePrice}}</span>
-
-
+            <span>{{ item.amountPayablePrice }}</span>
           </div>
         </div>
-        <div  v-for="(j,i) in item.subList" :key="i">
-          <ele-pro-table :show-summary="true" :summary-method="getSummaries" ref="table" row-key="id" :needPage="false"
-                         :columns="getColumns(j)" max-height="500px" style="margin-bottom: 10px"
-                         :sub-title="subTypeList[j.subType]+j.statementSubOrderCode" :toolkit="[]" :datasource="j.detailList"
-                         cache-key="systemRoleTable17-11121" class="time-form">
-            <template v-slot:action="{ row,$index }">
-              <el-popconfirm class="ele-action" title="确定要删除吗?" @confirm="remove(index,$index,'line')">
+        <div v-for="(j, i) in item.subList" :key="i">
+          <ele-pro-table
+            :show-summary="true"
+            :summary-method="getSummaries"
+            ref="table"
+            row-key="id"
+            :needPage="false"
+            :columns="getColumns(j)"
+            max-height="500px"
+            style="margin-bottom: 10px"
+            :sub-title="subTypeList[j.subType] + j.statementSubOrderCode"
+            :toolkit="[]"
+            :datasource="j.detailList"
+            cache-key="systemRoleTable17-11121"
+            class="time-form"
+          >
+            <template v-slot:action="{ row, $index }">
+              <el-popconfirm
+                class="ele-action"
+                title="确定要删除吗?"
+                @confirm="remove(index, $index, 'line')"
+              >
                 <template v-slot:reference>
-                  <el-link type="danger" v-if="dialogType!=='view'" :underline="false" icon="el-icon-delete">
+                  <el-link
+                    type="danger"
+                    v-if="dialogType !== 'view'"
+                    :underline="false"
+                    icon="el-icon-delete"
+                  >
                     删除
                   </el-link>
                 </template>
@@ -39,40 +59,40 @@
             </template>
           </ele-pro-table>
         </div>
-<!--        <template v-if="item.orderType!=6">-->
-<!--        -->
-<!--        </template>-->
-<!--        <div v-else>-->
-<!--          <ele-pro-table :show-summary="true" :summary-method="getSummaries" ref="table" row-key="id" :needPage="false"-->
-<!--                         :columns="getColumns({subType:20})" sub-title="赔付订单" max-height="500px" style="margin-bottom: 10px"-->
-<!--                         :toolkit="[]" :datasource="item.detailList"-->
-<!--                         cache-key="systemRoleTable17-11121" class="time-form">-->
-<!--            <template v-slot:action="{ row,$index }">-->
-<!--              <el-popconfirm class="ele-action" title="确定要删除吗?" @confirm="remove(index,$index,'line')">-->
-<!--                <template v-slot:reference>-->
-<!--                  <el-link type="danger" v-if="dialogType!=='view'" :underline="false" icon="el-icon-delete">-->
-<!--                    删除-->
-<!--                  </el-link>-->
-<!--                </template>-->
-<!--              </el-popconfirm>-->
-<!--            </template>-->
-<!--            &lt;!&ndash;            <template v-slot:productName="{ row,$index }">&ndash;&gt;-->
-<!--            &lt;!&ndash;              <el-popover&ndash;&gt;-->
-<!--            &lt;!&ndash;                placement="right"&ndash;&gt;-->
-<!--            &lt;!&ndash;                width="60%"&ndash;&gt;-->
-<!--            &lt;!&ndash;                trigger="hover">&ndash;&gt;-->
-<!--            &lt;!&ndash;                <ele-pro-table ref="childrenTable"&ndash;&gt;-->
-<!--            &lt;!&ndash;                               row-key="id"&ndash;&gt;-->
-<!--            &lt;!&ndash;                               max-height="300px"&ndash;&gt;-->
-<!--            &lt;!&ndash;                               :needPage="false" :columns="childrenColumns" :toolkit="[]"&ndash;&gt;-->
-<!--            &lt;!&ndash;                               :datasource="row.productList"&ndash;&gt;-->
-<!--            &lt;!&ndash;                               cache-key="systemRoleTable17-222" class="time-form">&ndash;&gt;-->
-<!--            &lt;!&ndash;                </ele-pro-table>&ndash;&gt;-->
-<!--            &lt;!&ndash;                <el-button type="text" slot="reference">{{ row.productName }}</el-button>&ndash;&gt;-->
-<!--            &lt;!&ndash;              </el-popover>&ndash;&gt;-->
-<!--            &lt;!&ndash;            </template>&ndash;&gt;-->
-<!--          </ele-pro-table>-->
-<!--        </div>-->
+        <!--        <template v-if="item.orderType!=6">-->
+        <!--        -->
+        <!--        </template>-->
+        <!--        <div v-else>-->
+        <!--          <ele-pro-table :show-summary="true" :summary-method="getSummaries" ref="table" row-key="id" :needPage="false"-->
+        <!--                         :columns="getColumns({subType:20})" sub-title="赔付订单" max-height="500px" style="margin-bottom: 10px"-->
+        <!--                         :toolkit="[]" :datasource="item.detailList"-->
+        <!--                         cache-key="systemRoleTable17-11121" class="time-form">-->
+        <!--            <template v-slot:action="{ row,$index }">-->
+        <!--              <el-popconfirm class="ele-action" title="确定要删除吗?" @confirm="remove(index,$index,'line')">-->
+        <!--                <template v-slot:reference>-->
+        <!--                  <el-link type="danger" v-if="dialogType!=='view'" :underline="false" icon="el-icon-delete">-->
+        <!--                    删除-->
+        <!--                  </el-link>-->
+        <!--                </template>-->
+        <!--              </el-popconfirm>-->
+        <!--            </template>-->
+        <!--            &lt;!&ndash;            <template v-slot:productName="{ row,$index }">&ndash;&gt;-->
+        <!--            &lt;!&ndash;              <el-popover&ndash;&gt;-->
+        <!--            &lt;!&ndash;                placement="right"&ndash;&gt;-->
+        <!--            &lt;!&ndash;                width="60%"&ndash;&gt;-->
+        <!--            &lt;!&ndash;                trigger="hover">&ndash;&gt;-->
+        <!--            &lt;!&ndash;                <ele-pro-table ref="childrenTable"&ndash;&gt;-->
+        <!--            &lt;!&ndash;                               row-key="id"&ndash;&gt;-->
+        <!--            &lt;!&ndash;                               max-height="300px"&ndash;&gt;-->
+        <!--            &lt;!&ndash;                               :needPage="false" :columns="childrenColumns" :toolkit="[]"&ndash;&gt;-->
+        <!--            &lt;!&ndash;                               :datasource="row.productList"&ndash;&gt;-->
+        <!--            &lt;!&ndash;                               cache-key="systemRoleTable17-222" class="time-form">&ndash;&gt;-->
+        <!--            &lt;!&ndash;                </ele-pro-table>&ndash;&gt;-->
+        <!--            &lt;!&ndash;                <el-button type="text" slot="reference">{{ row.productName }}</el-button>&ndash;&gt;-->
+        <!--            &lt;!&ndash;              </el-popover>&ndash;&gt;-->
+        <!--            &lt;!&ndash;            </template>&ndash;&gt;-->
+        <!--          </ele-pro-table>-->
+        <!--        </div>-->
       </div>
     </div>
 
@@ -87,331 +107,339 @@
     <!--      </el-col>-->
     <!--    </el-row>-->
   </div>
-
 </template>
 <script>
-
-export default {
-  components: {},
-  props: ['datasource', 'dialogType','dataForm'],
-  computed: {
-    getColumns() {
-      return (j)=>{
-        let basicFields = [
-          {
-            width: 60,
-            label: '序号',
-            type: 'index',
-            columnKey: 'index',
-            align: 'center',
-          },
-          {
-            minWidth: 130,
-            prop: 'productOperateTime',
-            label:  this.subColumnsTypeList[j.subType],
-            align: 'center',
-            slot: 'productOperateTime',
-            showOverflowTooltip: true
-          },
-          {
-            minWidth: 120,
-            prop: 'productCode',
-            label: '产品编码',
-            slot: 'productCode',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            minWidth: 140,
-            prop: 'productName',
-            label: '产品名称',
-            slot: 'productName',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            minWidth: 100,
-            prop: 'specification',
-            label: '规格',
-            align: 'center',
-            slot: 'specification',
-            showOverflowTooltip: true
-          },
-          {
-            minWidth: 100,
-            prop: 'modelType',
-            label: '型号',
-            align: 'center',
-            slot: 'modelType',
-            showOverflowTooltip: true
-          },
-          // {
-          //   minWidth: 100,
-          //   prop: 'orderNo',
-          //   label: '销售订单编码',
-          //   align: 'center',
-          //   slot: 'orderNo',
-          //   showOverflowTooltip: true
-          // },
-          // {
-          //   minWidth: 100,
-          //   prop: 'pricingWay',
-          //   label: '计价方式',
-          //   align: 'center',
-          //   slot: 'pricingWay',
-          //   showOverflowTooltip: true,
-          //   formatter: (_row, _column, cellValue) => {
-          //     return _row.pricingWay == 1 ? '按数量计价' : '按重量计价'
-          //   }
-          // },
-          {
-            minWidth: 100,
-            prop: 'totalCount',
-            label: '数量',
-            align: 'center',
-            slot: 'totalCount'
-          },
-          {
-            minWidth: 120,
-            prop: 'measuringUnit',
-            label: '计量单位',
-            align: 'center',
-            slot: 'measuringUnit'
-          },
-          {
-            width: 100,
-            prop: 'sendTotalWeight',
-            label: '发货总重',
-            slot: 'sendTotalWeight',
-            align: "center",
-            headerSlot: 'headerTotalCount'
-          },
-          {
-            width: 100,
-            prop: 'receiveTotalWeight',
-            label: '收货总重',
-            slot: 'receiveTotalWeight',
-            align: "center"
-          },
-          {
-            width: 100,
-            prop: 'increaseTotalWeight',
-            label: '增重重量',
-            slot: 'increaseTotalWeight',
-            align: "center"
-          },
-          {
-            width: 100,
-            prop: 'weightUnit',
-            label: '重量单位',
-            slot: 'weightUnit',
-            align: "center"
-          },
-          // {
-          //   minWidth: 90,
-          //   prop: 'singlePrice',
-          //   label: '单价',
-          //   align: 'center',
-          //   slot: 'singlePrice'
-          // },
-          {
-            minWidth: 100,
-            prop: 'discountSinglePrice',
-            label: '单价',
-            align: 'center',
-            slot: 'discountSinglePrice'
-          },
-          {
-            minWidth: 120,
-            prop: 'discountTotalPrice',
-            label: '合计金额',
-            slot: 'discountTotalPrice',
-            align: 'center',
-          },
-          // {
-          //   minWidth: 100,
-          //   prop: 'discountTotalPrice',
-          //   label: '折让合计金额',
-          //   align: 'center',
-          //   slot: 'discountTotalPrice'
-          // },
-        ]
-        let permissionType = {
-          // 'add': [
-          //   {
-          //     columnKey: 'action',
-          //     label: '操作',
-          //     width: 120,
-          //     align: 'center',
-          //     resizable: false,
-          //     slot: 'action',
-          //     fixed: 'right',
-          //     showOverflowTooltip: true
-          //   }
-          // ],
-          // 'update': [
-          //   {
-          //     columnKey: 'action',
-          //     label: '操作',
-          //     width: 120,
-          //     align: 'center',
-          //     resizable: false,
-          //     slot: 'action',
-          //     fixed: 'right',
-          //     showOverflowTooltip: true
-          //   }
-          // ],
-          'view': [
-            // {
-            //   minWidth: 140,
-            //   prop: 'paidDate',
-            //   label: '付款日期',
-            //   align: 'center',
-            //   slot: 'paidDate',
-            //   showOverflowTooltip: true
-            // },
-            // {
-            //   minWidth: 130,
-            //   prop: 'paidPrice',
-            //   label: '已付款金额',
-            //   align: 'center',
-            //   slot: 'paidPrice'
-            // },
+  import dictMixins from '@/mixins/dictMixins';
+  export default {
+    mixins: [dictMixins],
+    components: {},
+    props: ['datasource', 'dialogType', 'dataForm'],
+    computed: {
+      getColumns() {
+        return (j) => {
+          let basicFields = [
+            {
+              width: 60,
+              label: '序号',
+              type: 'index',
+              columnKey: 'index',
+              align: 'center'
+            },
+            {
+              minWidth: 130,
+              prop: 'productOperateTime',
+              label: this.subColumnsTypeList[j.subType],
+              align: 'center',
+              slot: 'productOperateTime',
+              showOverflowTooltip: true
+            },
+            {
+              minWidth: 120,
+              prop: 'productCode',
+              label: '产品编码',
+              slot: 'productCode',
+              align: 'center',
+              showOverflowTooltip: true
+            },
+            {
+              minWidth: 140,
+              prop: 'productName',
+              label: '产品名称',
+              slot: 'productName',
+              align: 'center',
+              showOverflowTooltip: true
+            },
+            {
+              minWidth: 100,
+              prop: 'specification',
+              label: '规格',
+              align: 'center',
+              slot: 'specification',
+              showOverflowTooltip: true
+            },
+            {
+              minWidth: 100,
+              prop: 'modelType',
+              label: '型号',
+              align: 'center',
+              slot: 'modelType',
+              showOverflowTooltip: true
+            },
+            {
+              prop: 'provenance',
+              label: '产地',
+              slot: 'provenance',
+              align: 'center',
+              // show:this.contractBookType==2,
+              minWidth: 200,
+              showOverflowTooltip: true,
+              formatter: (row, column) => {
+                return row.provenance && row.provenance.length
+                  ? row.provenance
+                      .map((item) => this.getDictValue('产地', item))
+                      .join(',')
+                  : '';
+              }
+            },
+            {
+              minWidth: 100,
+              prop: 'totalCount',
+              label: '数量',
+              align: 'center',
+              slot: 'totalCount'
+            },
+            {
+              minWidth: 120,
+              prop: 'measuringUnit',
+              label: '计量单位',
+              align: 'center',
+              slot: 'measuringUnit'
+            },
+            {
+              width: 100,
+              prop: 'sendTotalWeight',
+              label: '发货总重',
+              slot: 'sendTotalWeight',
+              align: 'center',
+              headerSlot: 'headerTotalCount'
+            },
+            {
+              width: 100,
+              prop: 'receiveTotalWeight',
+              label: '收货总重',
+              slot: 'receiveTotalWeight',
+              align: 'center'
+            },
+            {
+              width: 100,
+              prop: 'increaseTotalWeight',
+              label: '增重重量',
+              slot: 'increaseTotalWeight',
+              align: 'center'
+            },
+            {
+              width: 100,
+              prop: 'weightUnit',
+              label: '重量单位',
+              slot: 'weightUnit',
+              align: 'center'
+            },
             // {
-            //   minWidth: 130,
-            //   prop: 'notPaidPrice',
-            //   label: '应付款金额',
+            //   minWidth: 90,
+            //   prop: 'singlePrice',
+            //   label: '单价',
             //   align: 'center',
-            //   slot: 'notPaidPrice'
-            // },
-            // {
-            //   minWidth: 130,
-            //   prop: 'invoicedPrice',
-            //   label: '已开票金额',
-            //   align: 'center',
-            //   slot: 'invoicedPrice'
+            //   slot: 'singlePrice'
             // },
+            {
+              minWidth: 100,
+              prop: 'discountSinglePrice',
+              label: '单价',
+              align: 'center',
+              slot: 'discountSinglePrice'
+            },
+            {
+              minWidth: 120,
+              prop: 'discountTotalPrice',
+              label: '合计金额',
+              slot: 'discountTotalPrice',
+              align: 'center'
+            }
             // {
-            //   minWidth: 130,
-            //   prop: 'notInvoicedPrice',
-            //   label: '未开票金额',
+            //   minWidth: 100,
+            //   prop: 'discountTotalPrice',
+            //   label: '折让合计金额',
             //   align: 'center',
-            //   slot: 'notInvoicedPrice'
+            //   slot: 'discountTotalPrice'
             // },
-          ]
-        }
-        permissionType[this.dialogType] && basicFields.push(...permissionType[this.dialogType])
-        return basicFields
+          ];
+          let permissionType = {
+            // 'add': [
+            //   {
+            //     columnKey: 'action',
+            //     label: '操作',
+            //     width: 120,
+            //     align: 'center',
+            //     resizable: false,
+            //     slot: 'action',
+            //     fixed: 'right',
+            //     showOverflowTooltip: true
+            //   }
+            // ],
+            // 'update': [
+            //   {
+            //     columnKey: 'action',
+            //     label: '操作',
+            //     width: 120,
+            //     align: 'center',
+            //     resizable: false,
+            //     slot: 'action',
+            //     fixed: 'right',
+            //     showOverflowTooltip: true
+            //   }
+            // ],
+            view: [
+              // {
+              //   minWidth: 140,
+              //   prop: 'paidDate',
+              //   label: '付款日期',
+              //   align: 'center',
+              //   slot: 'paidDate',
+              //   showOverflowTooltip: true
+              // },
+              // {
+              //   minWidth: 130,
+              //   prop: 'paidPrice',
+              //   label: '已付款金额',
+              //   align: 'center',
+              //   slot: 'paidPrice'
+              // },
+              // {
+              //   minWidth: 130,
+              //   prop: 'notPaidPrice',
+              //   label: '应付款金额',
+              //   align: 'center',
+              //   slot: 'notPaidPrice'
+              // },
+              // {
+              //   minWidth: 130,
+              //   prop: 'invoicedPrice',
+              //   label: '已开票金额',
+              //   align: 'center',
+              //   slot: 'invoicedPrice'
+              // },
+              // {
+              //   minWidth: 130,
+              //   prop: 'notInvoicedPrice',
+              //   label: '未开票金额',
+              //   align: 'center',
+              //   slot: 'notInvoicedPrice'
+              // },
+            ]
+          };
+          permissionType[this.dialogType] &&
+            basicFields.push(...permissionType[this.dialogType]);
+          return basicFields;
+        };
       }
-
     },
-  },
-  data() {
-    return {
-      rules: {},
-      form: {},
-      subTypeList:{
-        20:'收货单:',
-        21:'退货单:',
-      },
-      subColumnsTypeList:{
-        20:'收货日期',
-        21:'退货日期',
-      },
-    };
-  },
-  methods: {
-    remove(tableIndex, lineIndex, delType) {
-      let params = {
-        tableIndex,
-        lineIndex,
-        delType
-      }
-      this.$emit('handleRemove', params)
+    created(){
+      this.requestDict('产地');
+
     },
-    getSummaries(param) {
-      const {columns, data} = param;
-      const sums = [];
-      let fields = ['totalPrice', 'paidPrice', 'notPaidPrice', 'invoicedPrice', 'notInvoicedPrice','discountTotalPrice']
-      columns.forEach((column, index) => {
-        if (index === 0) {
-          sums[index] = '合计';
-          return;
+    data() {
+      return {
+        rules: {},
+        form: {},
+        subTypeList: {
+          20: '收货单:',
+          21: '退货单:'
+        },
+        subColumnsTypeList: {
+          20: '收货日期',
+          21: '退货日期'
         }
-        const values = fields.includes(column.property) ? data.map(item => Number(item[column.property])) : []
-        if (!values.every(value => isNaN(value))) {
-          sums[index] = values.reduce((prev, curr) => {
-            const value = Number(curr);
-            if (!isNaN(value)) {
-              return prev + curr;
-            } else {
-              return prev;
-            }
-          }, 0);
-          sums[index] = (sums[index]).toFixed(2)
-        } else {
-          sums[index] = '';
-        }
-      });
+      };
+    },
+    methods: {
+      remove(tableIndex, lineIndex, delType) {
+        let params = {
+          tableIndex,
+          lineIndex,
+          delType
+        };
+        this.$emit('handleRemove', params);
+      },
+      getSummaries(param) {
+        const { columns, data } = param;
+        const sums = [];
+        let fields = [
+          'totalPrice',
+          'paidPrice',
+          'notPaidPrice',
+          'invoicedPrice',
+          'notInvoicedPrice',
+          'discountTotalPrice'
+        ];
+        columns.forEach((column, index) => {
+          if (index === 0) {
+            sums[index] = '合计';
+            return;
+          }
+          const values = fields.includes(column.property)
+            ? data.map((item) => Number(item[column.property]))
+            : [];
+          if (!values.every((value) => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr);
+              if (!isNaN(value)) {
+                return prev + curr;
+              } else {
+                return prev;
+              }
+            }, 0);
+            sums[index] = sums[index].toFixed(2);
+          } else {
+            sums[index] = '';
+          }
+        });
 
-      return sums;
+        return sums;
+      }
     }
-  }
-};
+  };
 </script>
 <style lang="scss" scoped>
-.headbox {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
+  .headbox {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
 
-  .amount {
-    font-size: 14px;
-    font-weight: bold;
-    padding-right: 30px;
+    .amount {
+      font-size: 14px;
+      font-weight: bold;
+      padding-right: 30px;
+    }
   }
-}
 
-.time-form .el-form-item {
-  margin-bottom: 0 !important;
-}
+  .time-form .el-form-item {
+    margin-bottom: 0 !important;
+  }
 
-::v-deep .period {
-  display: flex;
+  ::v-deep .period {
+    display: flex;
 
-  .borderleftnone {
-    .el-input--medium .el-input__inner {
-      border-top-right-radius: 0;
-      border-bottom-right-radius: 0;
+    .borderleftnone {
+      .el-input--medium .el-input__inner {
+        border-top-right-radius: 0;
+        border-bottom-right-radius: 0;
+      }
     }
-  }
 
-  .borderrightnone {
-    .el-input--medium .el-input__inner {
-      border-top-left-radius: 0;
-      border-bottom-left-radius: 0;
+    .borderrightnone {
+      .el-input--medium .el-input__inner {
+        border-top-left-radius: 0;
+        border-bottom-left-radius: 0;
+      }
     }
   }
 
-}
-
-::v-deep .time-form tbody > tr:hover > td {
-  background-color: transparent !important;
-}
-
-::v-deep .time-form .el-table tr {
-  background-color: #ffffff;
-}
+  ::v-deep .time-form tbody > tr:hover > td {
+    background-color: transparent !important;
+  }
 
-.pricebox {
-  display: flex;
-  justify-content: flex-start;
-  align-items: center;
-  font-weight: bold;
-}
-::v-deep.el-divider {
-  margin: 10px;
-  font-weight: bold;
-}
+  ::v-deep .time-form .el-table tr {
+    background-color: #ffffff;
+  }
 
+  .pricebox {
+    display: flex;
+    justify-content: flex-start;
+    align-items: center;
+    font-weight: bold;
+  }
+  ::v-deep.el-divider {
+    margin: 10px;
+    font-weight: bold;
+  }
 </style>

+ 23 - 15
src/views/saleManage/saleOrder/accountstatement/components/inventoryTable.vue

@@ -89,8 +89,10 @@
 
 </template>
 <script>
+import dictMixins from '@/mixins/dictMixins';
 
 export default {
+  mixins: [dictMixins],
   components: {},
   props: ['datasource', 'dialogType', 'dataForm'],
   computed: {
@@ -156,14 +158,23 @@ export default {
             slot: 'modelType',
             showOverflowTooltip: true
           },
-          // {
-          //   minWidth: 100,
-          //   prop: 'orderNo',
-          //   label: '销售订单编码',
-          //   align: 'center',
-          //   slot: 'orderNo',
-          //   showOverflowTooltip: true
-          // },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 100,
             prop: 'pricingWay',
@@ -255,13 +266,7 @@ export default {
 
           },
     
-          // {
-          //   minWidth: 100,
-          //   prop: 'discountTotalPrice',
-          //   label: '折让合计金额',
-          //   align: 'center',
-          //   slot: 'discountTotalPrice'
-          // },
+
         ]
         let permissionType = {
           // 'financeLeader': [
@@ -407,6 +412,9 @@ export default {
         }
       }
   },
+  created(){
+    this.requestDict('产地');
+  },
   data() {
     return {
       rules: {},

+ 23 - 0
src/views/saleManage/saleOrder/customerReturnOrder/addOrEditDialog.vue

@@ -255,7 +255,10 @@
   import modalTitle from '@/BIZComponents/modalTitle.vue';
   import ProductionVersion from '@/components/ProductionVersion2/index.vue';
   import fileMain from '@/components/addDoc/index.vue';
+  import dictMixins from '@/mixins/dictMixins';
+
   export default {
+    mixins: [dictMixins],
     name: 'addOrEditDialog',
     props: {
       addOrEditDialogFlag: {
@@ -437,6 +440,22 @@
             slot: 'technicalDrawings',
             align: 'center'
           },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 140,
             prop: 'reason',
@@ -465,6 +484,10 @@
         return basicFields;
       }
     },
+    created() {
+      this.requestDict('产地');
+
+    },
     methods: {
       //删除
       remove(row, index) {

+ 261 - 220
src/views/saleManage/saleOrder/customerReturnOrder/detailDialog.vue

@@ -24,18 +24,13 @@
       </div>
     </div>
     <div>
-      <el-form
-        v-if="activeComp==='cMain'"
-        ref="formRef"
-        :model="form">
+      <el-form v-if="activeComp === 'cMain'" ref="formRef" :model="form">
         <el-row style="margin-bottom: 10px">
           <el-col :span="6">
             <el-descriptions class="margin-top" :column="3" size="mini" border>
               <el-descriptions-item>
-                <template slot="label">
-                  退货单
-                </template>
-                {{ form.returnNo}}
+                <template slot="label"> 退货单 </template>
+                {{ form.returnNo }}
               </el-descriptions-item>
             </el-descriptions>
           </el-col>
@@ -60,16 +55,17 @@
               icon="el-icon-plus"
               class="ele-btn-icon"
               @click="handleSelectGoods"
-              v-if="dialogType!=='view'&&form.returnNo"
+              v-if="dialogType !== 'view' && form.returnNo"
             >
               选择退货物品
             </el-button>
           </template>
-          <template v-slot:action="{ row,$index }">
+          <template v-slot:action="{ row, $index }">
             <el-popconfirm
               class="ele-action"
               title="确定要删除吗?"
-              @confirm="remove(row,$index)">
+              @confirm="remove(row, $index)"
+            >
               <template v-slot:reference>
                 <el-link type="danger" :underline="false" icon="el-icon-delete">
                   删除
@@ -78,96 +74,117 @@
             </el-popconfirm>
           </template>
 
-
-          <template v-slot:packageCount="{ row,$index }">
+          <template v-slot:packageCount="{ row, $index }">
             <el-form-item
-              :prop="'detailList.'+$index+'.packageCount'"
-              :rules="{required:row.outboundType!=2?true:false,trigger:'blur',message:'请输入'}">
-              <el-input v-if="dialogType!=='view'&&row.outboundType!=2"
-                        v-model="row.packageCount"></el-input>
+              :prop="'detailList.' + $index + '.packageCount'"
+              :rules="{
+                required: row.outboundType != 2 ? true : false,
+                trigger: 'blur',
+                message: '请输入'
+              }"
+            >
+              <el-input
+                v-if="dialogType !== 'view' && row.outboundType != 2"
+                v-model="row.packageCount"
+              ></el-input>
               <div v-else>{{ row.packageCount }}</div>
             </el-form-item>
           </template>
 
-          <template v-slot:measurementCount="{ row,$index }">
+          <template v-slot:measurementCount="{ row, $index }">
             <el-form-item
-              :prop="'detailList.'+$index+'.measurementCount'"
-              :rules="{required:true,trigger:'blur',message:'请输入'}">
-              <el-input v-if="dialogType!=='view'"
-                        v-model="row.measurementCount"></el-input>
+              :prop="'detailList.' + $index + '.measurementCount'"
+              :rules="{ required: true, trigger: 'blur', message: '请输入' }"
+            >
+              <el-input
+                v-if="dialogType !== 'view'"
+                v-model="row.measurementCount"
+              ></el-input>
               <div v-else>{{ row.measurementCount }}</div>
             </el-form-item>
           </template>
 
-          <template v-slot:weight="{ row,$index }">
+          <template v-slot:weight="{ row, $index }">
             <el-form-item
-              :prop="'detailList.'+$index+'.weight'"
-              :rules="{required:true,trigger:'blur',message:'请输入'}">
-              <el-input v-if="dialogType!=='view'"
-                        v-model="row.weight"></el-input>
+              :prop="'detailList.' + $index + '.weight'"
+              :rules="{ required: true, trigger: 'blur', message: '请输入' }"
+            >
+              <el-input
+                v-if="dialogType !== 'view'"
+                v-model="row.weight"
+              ></el-input>
               <div v-else>{{ row.weight }}</div>
             </el-form-item>
           </template>
 
-          <template v-slot:carveCode="{ row,$index }">
+          <template v-slot:carveCode="{ row, $index }">
             <el-form-item
-              :prop="'detailList.'+$index+'.carveCode'"
-              :rules="{required:true,trigger:'blur',message:'请输入'}">
-              <el-input v-if="dialogType!=='view'"
-                        v-model="row.carveCode"></el-input>
+              :prop="'detailList.' + $index + '.carveCode'"
+              :rules="{ required: true, trigger: 'blur', message: '请输入' }"
+            >
+              <el-input
+                v-if="dialogType !== 'view'"
+                v-model="row.carveCode"
+              ></el-input>
               <div v-else>{{ row.carveCode }}</div>
             </el-form-item>
           </template>
 
           <!--  ///  发起人展示字段 -->
-          <template v-slot:reason="{ row,$index }">
+          <template v-slot:reason="{ row, $index }">
             <el-form-item
-              :prop="'detailList.'+$index+'.reason'"
-              :rules="{required:true,trigger:'blur',message:'请输入'}">
-              <el-input v-if="dialogType!=='view'"
-                        v-model="row.reason"></el-input>
+              :prop="'detailList.' + $index + '.reason'"
+              :rules="{ required: true, trigger: 'blur', message: '请输入' }"
+            >
+              <el-input
+                v-if="dialogType !== 'view'"
+                v-model="row.reason"
+              ></el-input>
               <div v-else>{{ row.reason }}</div>
             </el-form-item>
           </template>
-          <template v-slot:feedbackDate="{ row,$index }">
+          <template v-slot:feedbackDate="{ row, $index }">
             <el-form-item
-              :prop="'detailList.'+$index+'.feedbackDate'"
-              :rules="{required:true,trigger:'change',message:'请选择'}"
+              :prop="'detailList.' + $index + '.feedbackDate'"
+              :rules="{ required: true, trigger: 'change', message: '请选择' }"
             >
               <el-date-picker
-                v-if="dialogType!=='view'"
+                v-if="dialogType !== 'view'"
                 v-model="row.feedbackDate"
                 style="width: 100%"
                 type="date"
                 value-format="yyyy-MM-dd"
-                placeholder="选择日期">
+                placeholder="选择日期"
+              >
               </el-date-picker>
               <div v-else>{{ row.feedbackDate }}</div>
             </el-form-item>
-
           </template>
-          <template v-slot:sendDate="{ row,$index }">
+          <template v-slot:sendDate="{ row, $index }">
             <el-form-item
-              :prop="'detailList.'+$index+'.sendDate'"
-              :rules="{required:true,trigger:'change',message:'请选择'}"
+              :prop="'detailList.' + $index + '.sendDate'"
+              :rules="{ required: true, trigger: 'change', message: '请选择' }"
             >
               <el-date-picker
-                v-if="dialogType!=='view'"
+                v-if="dialogType !== 'view'"
                 v-model="row.sendDate"
                 style="width: 100%"
                 value-format="yyyy-MM-dd"
                 type="date"
-                placeholder="选择日期">
+                placeholder="选择日期"
+              >
               </el-date-picker>
               <div v-else>{{ row.sendDate }}</div>
             </el-form-item>
-
           </template>
           <!--////-->
         </ele-pro-table>
       </el-form>
     </div>
-    <bpmDetail v-if="activeComp==='cBpm'&&currentRow.processInstanceId" :id="currentRow.processInstanceId"></bpmDetail>
+    <bpmDetail
+      v-if="activeComp === 'cBpm' && currentRow.processInstanceId"
+      :id="currentRow.processInstanceId"
+    ></bpmDetail>
     <div slot="footer" class="footer">
       <el-button @click="cancel">返回</el-button>
     </div>
@@ -175,44 +192,45 @@
 </template>
 
 <script>
-import {getOutInBySourceBizNoAPI, saleReturnGetByIdAPI} from '@/api/saleManage/returnGoods';
-import dictMixins from '@/mixins/dictMixins';
-import bpmDetail from '@/views/bpm/processInstance/detail.vue';
-import customerReturnOrderDetail from "./addOrEditDialog.vue";
-import {deepClone} from "@/utils";
-
+  import {
+    getOutInBySourceBizNoAPI,
+    saleReturnGetByIdAPI
+  } from '@/api/saleManage/returnGoods';
+  import dictMixins from '@/mixins/dictMixins';
+  import bpmDetail from '@/views/bpm/processInstance/detail.vue';
+  import customerReturnOrderDetail from './addOrEditDialog.vue';
+  import { deepClone } from '@/utils';
 
-export default {
-  mixins: [dictMixins],
-  props: ['detailDialogFlag'],
-  components: {
-    bpmDetail,
-    customerReturnOrderDetail
-  },
-  data() {
-    return {
-      activeComp: 'cMain',
-      tabOptions: [
-        {key: 'cMain', name: '退货处理单详情'},
-        {key: 'cBpm', name: '退货处理单流程详情'},
-      ],
-      title: '详情',
-      warehousingMaterialList: [],
-      materialCodeReqList: [],
-      metaList: [],
-      currentRow: {},
-      form: {
-        detailList: [],
-        returnNo: '',
-      },
-      dialogType: '',
-    };
-  },
-  computed: {
-    columns() {
-      return [
-
-      {
+  export default {
+    mixins: [dictMixins],
+    props: ['detailDialogFlag'],
+    components: {
+      bpmDetail,
+      customerReturnOrderDetail
+    },
+    data() {
+      return {
+        activeComp: 'cMain',
+        tabOptions: [
+          { key: 'cMain', name: '退货处理单详情' },
+          { key: 'cBpm', name: '退货处理单流程详情' }
+        ],
+        title: '详情',
+        warehousingMaterialList: [],
+        materialCodeReqList: [],
+        metaList: [],
+        currentRow: {},
+        form: {
+          detailList: [],
+          returnNo: ''
+        },
+        dialogType: ''
+      };
+    },
+    computed: {
+      columns() {
+        return [
+          {
             width: 45,
             type: 'index',
             columnKey: 'index',
@@ -349,150 +367,173 @@ export default {
             slot: 'technicalDrawings',
             align: 'center'
           },
-        {
-          minWidth: 140,
-          prop: 'reason',
-          label: '客户退货理由',
-          align: 'center',
-          slot: 'reason',
-          headerSlot: 'headerReason'
-        },
-        {
-          minWidth: 180,
-          prop: 'feedbackDate',
-          label: '客户反馈日期',
-          align: 'center',
-          slot: 'feedbackDate'
-        },
-        {
-          minWidth: 180,
-          prop: 'sendDate',
-          label: '客户发出日期',
-          slot: 'sendDate',
-          align: 'center',
-          headerSlot: 'headerSendDate'
-        },
-      ]
-    }
-  },
-  created() {
-  },
-  methods: {
-    async init(type, row) {
-      this.dialogType = type
-      await this.getReturnInfo(row)
-      this.currentRow = row
-    },
-    //获取详情
-    async getReturnInfo(row) {
-      this.form = await saleReturnGetByIdAPI(row.id)
-      //拼接信息
-      const data = await getOutInBySourceBizNoAPI(row.sendNo)
-      this.infoData = deepClone(data)
-      //出库物料明细
-      this.warehousingMaterialList = this.infoData?.outInDetailVOList || []
-      //出库包装明细
-      if (this.warehousingMaterialList.length) {
-        this.materialCodeReqList = []
-        this.warehousingMaterialList.forEach(item => {
-          if (item.outInDetailRecordVOList?.length) {
-            item.outInDetailRecordVOList = item.outInDetailRecordVOList.map(i => {
-              return {
-                ...i,
-                outInCode: this.infoData.bizNo,
-                outInId: item.outInId,
-                measurementCount: i.totalCount,
-                outboundDetailId: i.id,
-                outboundType: 1,
-                packageCount: i.packingCount,
-                packingUnit: i.packingUnit,
-                weight: i.weight,
-                specification: item.specification,
-                name: i.name,
-                carveCode: i.carveCode,
-                categoryCode: i.categoryCode,
-                id: ''
-              }
-            })
-            this.materialCodeReqList.push(...item.outInDetailRecordVOList)
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item))
+                    .join(',')
+                : '';
+            }
+          },
+          {
+            minWidth: 140,
+            prop: 'reason',
+            label: '客户退货理由',
+            align: 'center',
+            slot: 'reason',
+            headerSlot: 'headerReason'
+          },
+          {
+            minWidth: 180,
+            prop: 'feedbackDate',
+            label: '客户反馈日期',
+            align: 'center',
+            slot: 'feedbackDate'
+          },
+          {
+            minWidth: 180,
+            prop: 'sendDate',
+            label: '客户发出日期',
+            slot: 'sendDate',
+            align: 'center',
+            headerSlot: 'headerSendDate'
           }
-        })
+        ];
+      }
+    },
+    created() {
+      this.requestDict('产地');
+
+    },
+    methods: {
+      async init(type, row) {
+        this.dialogType = type;
+        await this.getReturnInfo(row);
+        this.currentRow = row;
+      },
+      //获取详情
+      async getReturnInfo(row) {
+        this.form = await saleReturnGetByIdAPI(row.id);
+        //拼接信息
+        const data = await getOutInBySourceBizNoAPI(row.sendNo);
+        this.infoData = deepClone(data);
         //出库物料明细
-        if (this.materialCodeReqList.length) {
-          this.metaList = []
-          this.materialCodeReqList.forEach(item => {
-            if (item.outInDetailRecordMaterialDetailVOList?.length) {
-              item.outInDetailRecordMaterialDetailVOList = item.outInDetailRecordMaterialDetailVOList.map(i => {
-                return {
-                  ...i,
-                  outInId: item.outInId,
-                  outInCode: item.outInCode,
-                  measurementCount: 1,
-                  outboundDetailId: i.id,
-                  outboundType: 2,
-                  packageCount: i.packingCount,
-                  packingUnit: i.packingUnit,
-                  weight: i.weight,
-                  weightUtil: i.weightUnit,
-                  specification: item.specification,
-                  categoryCode: i.assetCode,
-                  name: i.assetName,
-                  carveCode: i.carveCode,
-                  id: ''
+        this.warehousingMaterialList = this.infoData?.outInDetailVOList || [];
+        //出库包装明细
+        if (this.warehousingMaterialList.length) {
+          this.materialCodeReqList = [];
+          this.warehousingMaterialList.forEach((item) => {
+            if (item.outInDetailRecordVOList?.length) {
+              item.outInDetailRecordVOList = item.outInDetailRecordVOList.map(
+                (i) => {
+                  return {
+                    ...i,
+                    outInCode: this.infoData.bizNo,
+                    outInId: item.outInId,
+                    measurementCount: i.totalCount,
+                    outboundDetailId: i.id,
+                    outboundType: 1,
+                    packageCount: i.packingCount,
+                    packingUnit: i.packingUnit,
+                    weight: i.weight,
+                    specification: item.specification,
+                    name: i.name,
+                    carveCode: i.carveCode,
+                    categoryCode: i.categoryCode,
+                    id: ''
+                  };
                 }
-              })
-              this.metaList.push(...item.outInDetailRecordMaterialDetailVOList)
+              );
+              this.materialCodeReqList.push(...item.outInDetailRecordVOList);
             }
-          })
+          });
+          //出库物料明细
+          if (this.materialCodeReqList.length) {
+            this.metaList = [];
+            this.materialCodeReqList.forEach((item) => {
+              if (item.outInDetailRecordMaterialDetailVOList?.length) {
+                item.outInDetailRecordMaterialDetailVOList =
+                  item.outInDetailRecordMaterialDetailVOList.map((i) => {
+                    return {
+                      ...i,
+                      outInId: item.outInId,
+                      outInCode: item.outInCode,
+                      measurementCount: 1,
+                      outboundDetailId: i.id,
+                      outboundType: 2,
+                      packageCount: i.packingCount,
+                      packingUnit: i.packingUnit,
+                      weight: i.weight,
+                      weightUtil: i.weightUnit,
+                      specification: item.specification,
+                      categoryCode: i.assetCode,
+                      name: i.assetName,
+                      carveCode: i.carveCode,
+                      id: ''
+                    };
+                  });
+                this.metaList.push(
+                  ...item.outInDetailRecordMaterialDetailVOList
+                );
+              }
+            });
+          }
         }
-      }
 
-      // this.form.detailList.forEach(item => {
-      //   if (item.outboundType == 1) {
-      //     let find = this.materialCodeReqList.find(i => i.outboundDetailId == item.outboundDetailId) || {}
-      //     item.name = find.name
-      //     item.categoryCode = find.categoryCode
-      //     item.specification = find.specification
-      //     item.weightUtil = find.weightUtil
-      //     item.packingUnit = find.packingUnit
-      //     item.measuringUnit = find.measuringUnit
-      //   } else {
-      //     let find = this.metaList.find(i => i.outboundDetailId == item.outboundDetailId) || {}
-      //     item.name = find.name
-      //     item.categoryCode = find.categoryCode
-      //     item.specification = find.specification
-      //     item.weightUtil = find.weightUtil
-      //     item.packingUnit = find.packingUnit
-      //     item.measuringUnit = find.measuringUnit
-      //   }
-      // })
-      this.$nextTick(() => {
-        this.$refs.table.reRenderTable()
-      })
-    },
-    cancel() {
-      this.$emit('update:detailDialogFlag', false)
-    },
-  }
-};
+        // this.form.detailList.forEach(item => {
+        //   if (item.outboundType == 1) {
+        //     let find = this.materialCodeReqList.find(i => i.outboundDetailId == item.outboundDetailId) || {}
+        //     item.name = find.name
+        //     item.categoryCode = find.categoryCode
+        //     item.specification = find.specification
+        //     item.weightUtil = find.weightUtil
+        //     item.packingUnit = find.packingUnit
+        //     item.measuringUnit = find.measuringUnit
+        //   } else {
+        //     let find = this.metaList.find(i => i.outboundDetailId == item.outboundDetailId) || {}
+        //     item.name = find.name
+        //     item.categoryCode = find.categoryCode
+        //     item.specification = find.specification
+        //     item.weightUtil = find.weightUtil
+        //     item.packingUnit = find.packingUnit
+        //     item.measuringUnit = find.measuringUnit
+        //   }
+        // })
+        this.$nextTick(() => {
+          this.$refs.table.reRenderTable();
+        });
+      },
+      cancel() {
+        this.$emit('update:detailDialogFlag', false);
+      }
+    }
+  };
 </script>
 
 <style scoped lang="scss">
-.ele-dialog-form {
-  .el-form-item {
-    margin-bottom: 10px;
+  .ele-dialog-form {
+    .el-form-item {
+      margin-bottom: 10px;
+    }
   }
-}
 
-.headbox {
-  display: flex;
-  justify-content: flex-start;
-  align-items: center;
+  .headbox {
+    display: flex;
+    justify-content: flex-start;
+    align-items: center;
 
-  .amount {
-    font-size: 14px;
-    font-weight: bold;
-    margin-right: 20px;
+    .amount {
+      font-size: 14px;
+      font-weight: bold;
+      margin-right: 20px;
+    }
   }
-}
 </style>

+ 20 - 1
src/views/saleManage/saleOrder/invoiceConfirm/components/addInvoiceDialog.vue

@@ -484,7 +484,23 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             width: 220,
             prop: 'remark',
@@ -551,6 +567,9 @@
         businessId: ''
       };
     },
+    created(){
+      this.requestDict('产地');
+    },
     computed: {
       competAnalysisListcolumns() {
         return [

+ 28 - 55
src/views/saleManage/saleOrder/invoiceConfirm/components/detailDialog.vue

@@ -49,64 +49,27 @@
             <el-form-item label="客户地址:" prop="partaAddress">
               <el-input v-model="form.partaAddress" disabled></el-input>
             </el-form-item>
-            <!-- <el-form-item
-              label="计价方式:">
-              <el-select v-model="form.pricingWay" disabled style="width: 100%">
-                <el-option label="按数量计费" :value="1"></el-option>
-                <el-option label="按重量计费" :value="2"></el-option>
-              </el-select>
-            </el-form-item> -->
+          
             <el-form-item label="发货附件:" prop="sendFiles">
               <fileMain v-model="form.sendFiles" type="view"></fileMain>
-              <!--            <div v-if="detailData.sendFiles && detailData.sendFiles?.length">-->
-              <!--              <el-link-->
-              <!--                v-for="link in detailData.sendFiles"-->
-              <!--                :key="link.id"-->
-              <!--                type="primary"-->
-              <!--                :underline="false"-->
-              <!--                @click="downloadFile(link)"-->
-              <!--              >-->
-              <!--                {{ link.name }}</el-link-->
-              <!--              >-->
-              <!--            </div>-->
+          
             </el-form-item>
             <el-form-item label="回执附件:" prop="sendFiles">
               <fileMain v-model="form.repliedFiles" type="view"></fileMain>
-              <!--            <div v-if="detailData.repliedFiles && detailData.repliedFiles?.length">-->
-              <!--              <el-link-->
-              <!--                v-for="link in detailData.repliedFiles"-->
-              <!--                :key="link.id"-->
-              <!--                type="primary"-->
-              <!--                :underline="false"-->
-              <!--                @click="downloadFile(link)">-->
-              <!--                {{ link.name }}</el-link>-->
-              <!--            </div>-->
+        
             </el-form-item>
           </el-col>
 
           <el-col :span="12">
-            <!-- <el-form-item label="车辆名称" >
-              <el-input disabled v-model="form.deviceName"/>
-            </el-form-item>
-            <el-form-item
-              label="车牌号:"
-              prop="carNo">
-              <el-input v-model="form.carNo" disabled></el-input>
-            </el-form-item> -->
+          
             <el-form-item label="收货确认单编码:" prop="entrustedCode">
               <el-input v-model="form.docNo" disabled></el-input>
             </el-form-item>
-            <!--            <el-form-item-->
-            <!--              label="受托收货单编码:"-->
-            <!--              prop="entrustedCode">-->
-            <!--              <el-input v-model="form.entrustedCode" disabled></el-input>-->
-            <!--            </el-form-item>-->
+       
             <el-form-item label="发货单编码:" prop="docNo">
               <el-input v-model="form.sendNo" disabled></el-input>
             </el-form-item>
-            <!--            <el-form-item prop="orderNo" label="订单编码:">-->
-            <!--              <el-input v-model="form.orderNo" disabled></el-input>-->
-            <!--            </el-form-item>-->
+
             <el-form-item prop="replied" label="是否回执:">
               <el-select v-model="form.replied" disabled style="width: 100%">
                 <el-option label="是" :value="1"></el-option>
@@ -359,7 +322,23 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             width: 220,
             prop: 'remark',
@@ -380,17 +359,8 @@
             },
             fixed: 'right',
             align: 'center'
-          }
-          // {
-          //   columnKey: 'action',
-          //   label: '操作',
-          //   width: 120,
-          //   align: 'center',
-          //   resizable: false,
-          //   slot: 'action',
-          //   fixed: 'right',
-          //   showOverflowTooltip: true
-          // }
+          },
+ 
         ],
         childrenColumns: [
           {
@@ -651,6 +621,9 @@
         ];
       }
     },
+    created(){
+      this.requestDict('产地');
+    },
     methods: {
       async open(row) {
         this.form = row;

+ 18 - 0
src/views/saleManage/saleOrder/returnGoods/components/addReturnGoodsDialog.vue

@@ -568,6 +568,21 @@
  
             align: 'center'
           },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             width: 220,
             prop: 'remark',
@@ -619,6 +634,9 @@
         productList: []
       };
     },
+    created(){
+      this.requestDict('产地');
+    },
     computed: {
       // totalAmount() {
       //   return this.$store.state.returnGoods.allcountAmount;

+ 21 - 0
src/views/saleManage/saleOrder/returnGoods/components/customerReturnOrderDetail.vue

@@ -35,8 +35,10 @@
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   import { reviewStatusEnum } from '@/enum/dict';
   import fileMain from '@/components/addDoc/index.vue';
+  import dictMixins from '@/mixins/dictMixins';
 
   export default {
+    mixins: [dictMixins],
     name: 'customerReturnOrderDetail',
     components: { bpmDetail,fileMain },
     props: ['row'],
@@ -195,6 +197,22 @@
             slot: 'technicalDrawings',
             align: 'center'
           },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 140,
             prop: 'reason',
@@ -301,6 +319,9 @@
         return basicFields;
       }
     },
+    created(){
+      this.requestDict('产地');
+    },
     mounted() {
       this.init('', this.row);
     },

+ 34 - 37
src/views/saleManage/saleOrder/returnGoods/components/detailDialog.vue

@@ -195,7 +195,7 @@
   import { reviewStatusEnum } from '@/enum/dict';
   import { copyObj } from '@/utils/util';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
-  import inventoryTabledetail from './inventoryTableReturnDetail.vue';
+  import inventoryTabledetail from '@/BIZComponents/inventoryTableDetails.vue';
   import customerReturnOrderDetail from '@/views/saleManage/saleOrder/returnGoods/components/customerReturnOrderDetail.vue';
   import outBoundDetails from '@/BIZComponents/outdetails.vue';
   import modalTitle from '@/BIZComponents/modalTitle.vue';
@@ -441,6 +441,21 @@
 
             align: 'center'
           },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             width: 220,
             prop: 'remark',
@@ -607,41 +622,21 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsResult',
-          //   label: '质检结果',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityResults[_row.qmsResult];
-          //   }
-          // },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsStatus',
-          //   label: '质检状态',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityStatus[_row.qmsStatus];
-          //   }
-          // },
-          // {
-          //   minWidth: 130,
-          //   prop: 'productionDate',
-          //   showOverflowTooltip: true,
-          //   label: '生产日期',
-          //   align: 'center'
-          // },
-
-          // {
-          //   minWidth: 100,
-          //   prop: 'purchaseDate',
-          //   label: '采购日期',
-          //   align: 'center'
-          // },
-
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 200,
             prop: 'returnReason',
@@ -660,7 +655,9 @@
         ]
       };
     },
-    created() {},
+    created(){
+      this.requestDict('产地');
+    },   
     methods: {
       async getcode(code) {
         const res = await getByCode(code);

+ 18 - 34
src/views/saleManage/saleOrder/returnGoods/components/inventoryTable.vue

@@ -491,40 +491,21 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsResult',
-          //   label: '质检结果',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityResults[_row.qmsResult];
-          //   }
-          // },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsStatus',
-          //   label: '质检状态',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityStatus[_row.qmsStatus];
-          //   }
-          // },
-          // {
-          //   minWidth: 130,
-          //   prop: 'productionDate',
-          //   showOverflowTooltip: true,
-          //   label: '生产日期',
-          //   align: 'center'
-          // },
-
-          // {
-          //   minWidth: 100,
-          //   prop: 'purchaseDate',
-          //   label: '采购日期',
-          //   align: 'center'
-          // },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 100,
             prop: 'renturnType',
@@ -561,6 +542,9 @@
         ]
       };
     },
+    created(){
+      this.requestDict('产地');
+    },
     computed: {
       totalAmount() {
         let num = 0;