From 7207ef22748a8fecfde5e7ded828dc9b6bcfefe7 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期一, 15 九月 2025 15:37:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/cms/CuttingReceiveList.vue |  453 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 453 insertions(+), 0 deletions(-)

diff --git a/src/views/cms/CuttingReceiveList.vue b/src/views/cms/CuttingReceiveList.vue
new file mode 100644
index 0000000..b407a53
--- /dev/null
+++ b/src/views/cms/CuttingReceiveList.vue
@@ -0,0 +1,453 @@
+<template>
+  <a-card :bordered="false">
+    <!-- 鏌ヨ鍖哄煙 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+          <a-col :md="6" :sm="8">
+            <a-form-item label="棰嗙敤鍗曠姸鎬�">
+              <j-search-select-tag
+                placeholder="璇烽�夋嫨棰嗙敤鍗曠姸鎬�"
+                v-model="queryParam.orderStatus"
+                dict="order_status"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="棰嗙敤浜�">
+              <j-search-select-tag
+                placeholder="璇烽�夋嫨棰嗙敤浜�"
+                v-model="queryParam.receiver"
+                dict="sys_user,realname,id,del_flag!=1"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col
+            :md="6"
+            :sm="8"
+          >
+            <span
+              style="float: left;overflow: hidden;"
+              class="table-page-search-submitButtons"
+            >
+              <a-button
+                type="primary"
+                @click="searchQuery"
+                icon="search"
+              >鏌ヨ</a-button>
+              <a-button
+                type="primary"
+                @click="searchReset"
+                icon="reload"
+                style="margin-left: 8px"
+              >閲嶇疆</a-button>
+            </span>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 鏌ヨ鍖哄煙-END -->
+
+    <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+    <div class="table-operator">
+      <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
+      <!-- <a-button type="primary" icon="download" @click="handleExportXls('鍒�鍏烽鐢ㄥ崟')">瀵煎嚭</a-button>
+      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+        <a-button type="primary" icon="import">瀵煎叆</a-button>
+      </a-upload> -->
+    </div>
+
+    <!-- table鍖哄煙-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a
+        style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤�
+        <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        :scroll="{x:true}"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        class="j-table-force-nowrap"
+        :customRow="customRow"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt=""
+               style="max-width:80px;font-size: 12px;font-style: italic;" />
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            涓嬭浇
+          </a-button>
+        </template>
+
+        <!--        <span slot="action" slot-scope="text, record">-->
+        <!--          <a @click="handleEdit(record)">缂栬緫</a>-->
+
+        <!--          <a-divider type="vertical" />-->
+        <!--          <a-dropdown>-->
+        <!--            <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>-->
+        <!--            <a-menu slot="overlay">-->
+        <!--              <a-menu-item>-->
+        <!--                <a @click="handleDetail(record)">璇︽儏</a>-->
+        <!--              </a-menu-item>-->
+        <!--              <a-menu-item>-->
+        <!--                <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">-->
+        <!--                  <a>鍒犻櫎</a>-->
+        <!--                </a-popconfirm>-->
+        <!--              </a-menu-item>-->
+        <!--            </a-menu>-->
+        <!--          </a-dropdown>-->
+        <!--        </span>-->
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)" :disabled="record.orderStatus === '2' || record.orderStatus === '3'">缂栬緫</a>
+          <a-divider type="vertical" />
+          <a-dropdown>
+            <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a @click="handleDetail(record)">璇︽儏</a>
+              </a-menu-item>
+              <a-menu-item v-if="record.orderStatus === '1'">
+                  <a @click="handleSubmit(record.id)" :disabled="record.orderStatus === '3'">鎻愪氦</a>
+              </a-menu-item>
+              <a-menu-item v-if="record.orderStatus === '1'">
+                <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
+                  <a>鍒犻櫎</a>
+                </a-popconfirm>
+              </a-menu-item>
+               <a-menu-item v-if="record.orderStatus === '2'">
+                  <a @click="handleBack(record.id)">褰掕繕</a>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span>
+
+      </a-table>
+    </div>
+    <a-tabs defaultActiveKey="1">
+      <a-tab-pane tab="鍒�鍏烽鐢ㄦ槑缁�" key="1">
+        <cutting-receive-detail-list ref="cuttingReceiveDetailList"></cutting-receive-detail-list>
+      </a-tab-pane>
+    </a-tabs>
+    <cutting-receive-modal ref="modalForm" @ok="modalFormOk"></cutting-receive-modal>
+  </a-card>
+</template>
+
+<script>
+
+import '@/assets/less/TableExpand.less'
+import { mixinDevice } from '@/utils/mixin'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import CuttingReceiveModal from './modules/CuttingReceiveModal'
+import CuttingReceiveDetailList from './CuttingReceiveDetailList'
+import { httpAction } from '@api/manage'
+
+export default {
+  name: 'CuttingReceiveList',
+  mixins: [JeecgListMixin, mixinDevice],
+  components: {
+    CuttingReceiveModal,
+    CuttingReceiveDetailList
+  },
+  data() {
+    return {
+      description: '鍒�鍏烽鐢ㄥ崟绠$悊椤甸潰',
+      // 琛ㄥご
+      columns: [
+        {
+          title: '#',
+          dataIndex: '',
+          key: 'rowIndex',
+          width: 60,
+          align: 'center',
+          customRender: function(t, r, index) {
+            return parseInt(index) + 1
+          }
+        },
+        {
+          title: '棰嗙敤浜�',
+          align: 'center',
+          dataIndex: 'receiver_dictText'
+        },
+        {
+          title: '棰嗙敤鏃堕棿',
+          align: 'center',
+          dataIndex: 'receiveTime',
+          customRender: function(text) {
+            return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
+          }
+        },
+        {
+          title: '棰嗙敤璇存槑',
+          align: 'center',
+          dataIndex: 'receiveComment'
+        },
+        {
+          title: '纭浜�',
+          align: 'center',
+          dataIndex: 'confirmer_dictText'
+        },
+        {
+          title: '纭鏃堕棿',
+          align: 'center',
+          dataIndex: 'confirmTime',
+          customRender: function(text) {
+            return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
+          }
+        },
+        {
+          title: '纭鎰忚',
+          align: 'center',
+          dataIndex: 'confirmComment'
+        },
+        {
+          title: '鏄惁浼氬綊杩�',
+          align: 'center',
+          dataIndex: 'returnFlag'
+        },
+        {
+          title: '褰掕繕鏃堕棿',
+          align: 'center',
+          dataIndex: 'returnTime',
+          customRender: function(text) {
+            return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
+          }
+        },
+        {
+          title: '褰掕繕璇存槑',
+          align: 'center',
+          dataIndex: 'returnComment'
+        },
+        {
+          title: '褰掕繕纭浜�',
+          align: 'center',
+          dataIndex: 'returnConfirmer_dictText'
+        },
+        {
+          title: '褰掕繕纭鏃堕棿',
+          align: 'center',
+          dataIndex: 'returnConfirmTime',
+          customRender: function(text) {
+            return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text)
+          }
+        },
+        {
+          title: '褰掕繕纭鎰忚',
+          align: 'center',
+          dataIndex: 'returnConfirmComment'
+        },
+        {
+          title: '棰嗙敤鍗曠姸鎬�',
+          align: 'center',
+          dataIndex: 'orderStatus_dictText'
+        },
+        {
+          title: '鎿嶄綔',
+          dataIndex: 'action',
+          align: 'center',
+          fixed: 'right',
+          width: 147,
+          scopedSlots: { customRender: 'action' }
+        }
+      ],
+      url: {
+        list: '/cms/cuttingReceive/list',
+        delete: '/cms/cuttingReceive/delete',
+        deleteBatch: '/cms/cuttingReceive/deleteBatch',
+        exportXlsUrl: '/cms/cuttingReceive/exportXls',
+        importExcelUrl: 'cms/cuttingReceive/importExcel',
+        submit: '/cms/cuttingReceive/submit',
+        returnBack: '/cms/cuttingReceive/handleBack'
+      },
+      dictOptions: {},
+      superFieldList: []
+    }
+  },
+  created() {
+    this.getSuperFieldList()
+  },
+  computed: {
+    importExcelUrl: function() {
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
+    }
+  },
+  methods: {
+    searchReset() {
+      this.queryParam = {}
+      this.$refs.cuttingReceiveDetailList.dataSource = []
+      this.loadData(1)
+    },
+    handleEdit: function(record) {
+      this.$refs.modalForm.edit(record)
+      this.$refs.modalForm.title = '缂栬緫'
+      this.$refs.modalForm.disableSubmit = false
+    },
+    handleAdd() {
+      this.$refs.modalForm.add()
+      this.$refs.modalForm.title = '鏂板'
+      this.$refs.modalForm.disableSubmit = false
+    },
+    handleDetail: function(record) {
+      this.$refs.modalForm.edit(record)
+      this.$refs.modalForm.title = '璇︽儏'
+      this.$refs.modalForm.disableSubmit = true
+    },
+    customRow(record) {
+      return {
+        on: {
+          click: (e) => {
+            //灏嗗綋鍓嶉�変腑鐨勮褰曚紶鍒板瓙椤甸潰
+            this.$bus.$emit('getToolingStorageData', record)
+            //鐐瑰嚮褰撳墠琛屽彉鑹�
+            let oldList = document.querySelectorAll('.checked-td-of-add-table')
+            if (oldList) {
+              for (let j = 0; j < oldList.length; j++) {
+                oldList[j].classList.remove('checked-td-of-add-table')
+              }
+            }
+            let children = e.target.parentNode.children
+            for (let i = 0; i < children.length; i++) {
+              children[i].classList.add('checked-td-of-add-table')
+            }
+          }
+        }
+      }
+    },
+
+    /**
+     *  鍗曟嵁鎻愪氦
+     */
+    handleSubmit: function(id) {
+      if (!this.url.submit) {
+        this.$message.error('璇疯缃畊rl.submit灞炴��!')
+        return
+      }
+
+      let targetId = id // 浠庡弬鏁拌幏鍙朓D
+      // 濡傛灉娌℃湁閫氳繃鍙傛暟浼犻�扞D锛屽垯妫�鏌ラ�変腑鐨勮褰�
+      if (!targetId) {
+        if (this.selectedRowKeys.length != 1) {
+          this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒')
+          return
+        } else {
+          targetId = this.selectedRowKeys[0]
+        }
+      }
+
+      // 灏嗗弬鏁颁綔涓烘煡璇㈠弬鏁伴檮鍔犲埌URL涓�
+      let httpurl = this.url.submit + '?orderId=' + encodeURIComponent(targetId)
+      let method = 'get'
+      var params = {}  // 娓呯┖params锛屽洜涓哄弬鏁板凡缁忓湪URL涓紶閫�
+
+      const that = this
+
+      this.$confirm({
+        title: '纭鎻愪氦锛�',
+        // content: '姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...',
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk() {
+          // 鏄剧ず鍔犺浇鎻愮ず
+          const hide = that.$message.loading('姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', 0)
+
+          // 鍙戦�佽姹�
+          return httpAction(httpurl, params, method).then((res) => {
+            hide() // 闅愯棌鍔犺浇鎻愮ず
+            if (res.success) {
+              that.$message.success(res.message)
+              that.loadData()
+            } else {
+              that.$message.warning(res.message)
+            }
+          }).catch(error => {
+            hide() // 闅愯棌鍔犺浇鎻愮ず
+            that.$message.error('鎻愪氦澶辫触: ' + error.message)
+          }).finally(() => {
+            that.loading = false
+          })
+        }
+      })
+    },
+
+    /**
+     *  鍗曟嵁棰嗙敤
+     */
+
+    handleBack: function(id) {
+      if (!this.url.returnBack) {
+        this.$message.error('璇疯缃畊rl.return灞炴��!')
+        return
+      }
+
+      let targetId = id // 浠庡弬鏁拌幏鍙朓D
+      // 濡傛灉娌℃湁閫氳繃鍙傛暟浼犻�扞D锛屽垯妫�鏌ラ�変腑鐨勮褰�
+      if (!targetId) {
+        if (this.selectedRowKeys.length != 1) {
+          this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒')
+          return
+        } else {
+          targetId = this.selectedRowKeys[0]
+        }
+      }
+
+      // 灏嗗弬鏁颁綔涓烘煡璇㈠弬鏁伴檮鍔犲埌URL涓�
+      let httpurl = this.url.returnBack + '?orderId=' + encodeURIComponent(targetId)
+      let method = 'get'
+      var params = {}  // 娓呯┖params锛屽洜涓哄弬鏁板凡缁忓湪URL涓紶閫�
+
+      const that = this
+
+      this.$confirm({
+        title: '纭鎻愪氦锛�',
+        // content: '姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...',
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk() {
+          // 鏄剧ず鍔犺浇鎻愮ず
+          const hide = that.$message.loading('姝e湪鎻愪氦鏁版嵁锛岃鑰愬績绛夊緟...', 0)
+
+          // 鍙戦�佽姹�
+          return httpAction(httpurl, params, method).then((res) => {
+            hide() // 闅愯棌鍔犺浇鎻愮ず
+            if (res.success) {
+              that.$message.success(res.message)
+              that.loadData()
+            } else {
+              that.$message.warning(res.message)
+            }
+          }).catch(error => {
+            hide() // 闅愯棌鍔犺浇鎻愮ず
+            that.$message.error('鎻愪氦澶辫触: ' + error.message)
+          }).finally(() => {
+            that.loading = false
+          })
+        }
+      })
+    }
+  }
+}
+</script>
+<style scoped>
+@import '~@assets/less/common.less';
+</style>
\ No newline at end of file

--
Gitblit v1.9.3