From cb611a0c2ba672e23aedb6f95635deb4f922b79b Mon Sep 17 00:00:00 2001
From: NNowhZzU <1539353356@qq.com>
Date: 星期五, 05 一月 2024 17:03:46 +0800
Subject: [PATCH] 新增采购订单详情页,部分消息提示,修改采购订单功能部分

---
 north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue     |    4 
 north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Create.vue        |  471 +++++++----
 north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/PurchaseOrder.vue |   64 +
 north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Select.vue        |  377 +++++++--
 north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Payment.vue       |  164 ++-
 north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Storage.vue       |  381 ++++++---
 north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Return.vue        |  400 ++++++---
 north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Details.vue       |  453 +++++++++++
 8 files changed, 1,730 insertions(+), 584 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Create.vue b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Create.vue
index 932c4b1..0fc1826 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Create.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Create.vue
@@ -1,81 +1,103 @@
 <template>
   <el-header height="auto">
-    <el-form label-width="100px" :inline="true" :model="formInline" class="demo-form-inline">
-      <el-row :gutter="10">
-        <el-col :span="6">
-          <el-form-item label="閲囪喘绫诲瀷" class="item-style">
-            <el-select v-model="form.buyType" class="m-2" placeholder="閫夋嫨閲囪喘绫诲瀷" clearable>
-              <el-option
-                  v-for="item in CGTypeOptions"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-              />
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="閲囪喘閮ㄩ棬" class="item-style">
-            <el-select v-model="cgBuMen" class="m-2" placeholder="閫夋嫨閲囪喘閮ㄩ棬" clearable>
-              <el-option
-                  v-for="item in CGBuMenOptions"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-              />
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="渚涘簲鍟�" class="item-style">
-            <el-cascader
-                placeholder="閫夋嫨渚涘簲鍟�"
-                :options="buyerOptions"
-                filterable
-                clearable
-                empty-text="empty-text"
-                :v-model="form.supplier"
-            >
-            </el-cascader>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="閲囪喘鍛�" class="item-style">
-            <el-select v-model="form.buyer" class="m-2" placeholder="閫夋嫨閲囪喘閮ㄩ棬" clearable>
-              <el-option
-                  v-for="item in BuyerOptions"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-              />
-            </el-select>
-          </el-form-item>
-        </el-col>
+    <el-descriptions
+        class="margin-top"
+        title=""
+        :column="4"
+        :size="'default'"
+        border
+        :rules="rules"
+        :model="ruleForm"
+    >
 
-      </el-row>
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy" prop="name">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘绫诲瀷
+        </template>
+<!--        <el-select v-model="form.buyType" class="m-2" placeholder="閫夋嫨閲囪喘绫诲瀷" clearable>-->
+        <el-select v-model="ruleForm.name" class="m-2" placeholder="閫夋嫨閲囪喘绫诲瀷" clearable>
+          <el-option
+              v-for="item in CGTypeOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>
+      </el-descriptions-item >
 
-      <el-row :gutter="10">
-        <el-col :span="6">
-          <el-form-item label="閲囪喘缁勭粐" class="item-style">
-            <el-input v-model="form.buyItem" placeholder="閲囪喘缁勭粐" clearable></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="鍒惰〃鏃ユ湡" class="item-style">
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘缁勭粐
+        </template>
+        <el-input v-model="ruleForm.name" placeholder="閲囪喘缁勭粐" clearable prop="name"></el-input>
+      </el-descriptions-item>
 
-            <el-date-picker
-                v-model="form.date"
-                type="date"
-                placeholder="閫夋嫨鍒惰〃鏃ユ湡"
-                style="width: 100%"
-            />
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          渚涘簲鍟�
+        </template>
+        <el-cascader
+            placeholder="閫夋嫨渚涘簲鍟�"
+            :options="buyerOptions"
+            filterable
+            clearable
+            empty-text="empty-text"
+            :v-model="form.supplier"
+        >
+        </el-cascader>
+      </el-descriptions-item>
 
-          </el-form-item>
-        </el-col>
-        <el-col :span="6"></el-col>
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘閮ㄩ棬
+        </template>
+        <el-select v-model="cgBuMen" class="m-2" placeholder="閫夋嫨閲囪喘閮ㄩ棬" clearable>
+          <el-option
+              v-for="item in CGBuMenOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>
+      </el-descriptions-item>
 
-      </el-row>
-    </el-form>
+
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          <span style="color:red">*</span>
+          閲囪喘鍛�
+        </template>
+        <el-select v-model="form.buyer" class="m-2" placeholder="閫夋嫨閲囪喘鍛�" clearable>
+          <el-option
+              v-for="item in BuyerOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy"
+      >
+        <template #label>
+          <span style="color:red">*</span>
+          鍒惰〃鏃ユ湡
+        </template>
+        <el-date-picker
+            v-model="form.date"
+            type="date"
+            placeholder="閫夋嫨鍒惰〃鏃ユ湡"
+
+        />
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy"></el-descriptions-item>
+    </el-descriptions>
 
   </el-header>
 
@@ -91,7 +113,7 @@
         class="mytable-scrollbar"
         ref="xGrid"
         v-bind="gridOptions"
-        v-on="gridEvents"
+        @="gridEvents"
     >
 
       <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
@@ -115,7 +137,7 @@
       <template #num1_filter="{ column, $panel }">
         <div>
           <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+            <el-input v-model="option.data" @input="changeFilterEvent($event, option, $panel)" />
           </div>
         </div>
       </template>
@@ -125,8 +147,10 @@
 
 </template>
 
-<script setup>
+<script lang="ts" setup>
 import {ref, reactive} from 'vue'
+import {useRouter} from "vue-router";
+import {ElMessage, ElMessageBox} from "element-plus";
 
 let router = useRouter()
 
@@ -163,7 +187,7 @@
     //{title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
     {type: 'seq', fixed: "left", title: ' ', width: 50},
     {type: 'checkbox', fixed: "left", title: '', width: 50},
-    {type: 'expand', title: '璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
+    //{type: 'expand', title: '璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
     {
       field: 'cgdh',
       width: '10%',
@@ -203,7 +227,8 @@
       width: '8%',
       title: '楂樺害', /*filters: [{data: ''}], slots: {filter: 'num1_filter'},*/
       editRender: {name: 'input', attrs: {placeholder: ''}},
-      sortable: true
+      sortable: true,
+      type: 'number'
     },
     {
       field: 'h',
@@ -310,12 +335,12 @@
         'name': '鍏ュ簱',
         status: 'primary',
         'code': 'Storage'
-      },
+      }/*,
       {
         'name': '閫�璐�',
         status: 'primary',
         'code': 'Return'
-      }/*,
+      },
       {
         'name': '杩斿洖鏌ヨ',
 
@@ -356,7 +381,8 @@
     const $grid = xGrid.value
     if ($grid) {
       switch (code) {
-        case 'Add': {//鏂板
+//鏂板
+        case 'Add': {
           const record = {
             checked: false
           }
@@ -365,83 +391,57 @@
           })
           break
         }
-        case 'Remove': {//绉婚櫎
+//绉婚櫎
+        case 'Remove': {
           if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
             return
           } else {
-            const type = VXETable.modal.confirm('鎮ㄧЩ闄や簡' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
+
+            MessageConfirmShow('绉婚櫎','鏄惁纭绉婚櫎閫変腑鐨�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒');
+
           }
           break
         }
-        case 'Save': {//淇濆瓨
-
-
-          if (form.buyItem === null || form.buyItem === '') {
-            openAlert({type: 'message', content: '閲囪喘缁勭粐涓嶅彲涓虹┖', status: 'warning'})
+//淇濆瓨
+        case 'Save': {
+          /*if (form.buyItem === null || form.buyItem === '') {
+            MessageShow('閲囪喘缁勭粐涓嶅彲涓虹┖','warning');
+            return;
           }
-
-          return
-
-          if (buyerOptions.values() <= 0) {
-
-          }
-
-          const type = VXETable.modal.confirm('鏄惁纭畾淇濆瓨褰撳墠璁㈠崟淇℃伅锛�');
-          openAlert({type: 'message', content: $grid.rows.number + '', status: 'warning'})
-          return
-
-          break
-        }
-        case 'GoSelect': {
-
-          router.push({path: '/main/purchaseOrder/SelectPurchaseOrder'})
-          break
-        }
-
-        case 'Storage': {//鍏ュ簱
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-        case 'Return': {//閫�搴�
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            /*            async ()=>{
-              const type = await.VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-            }*/
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-
-
-            /* if(VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵' )){
-              //openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success',lockView: false, mask: false })
-
-
-            }*/
-
-            /* if(type==='confirm'){
-              openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            }
-
 */
-            //openAlert({type:'alert', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+          //閫変腑鏁版嵁
+          /* const $table = this.$refs.xTable
+           const selectRecords = $table.getCheckboxRecords()*/
+//+$grid.rows.number
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
             return
+          } else {
+
+
+            MessageConfirmShow('淇濆瓨璁㈠崟','鏄惁纭畾淇濆瓨褰撳墠璁㈠崟淇℃伅');
+          }
+          break
+        }
+//鍏ュ簱
+        case 'Storage': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+            MessageConfirmShow('鍏ュ簱','鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�')
+          }
+          break
+        }
+//閫�搴�
+        case 'Return': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�','warning');
+            return
+          } else {
+
+
           }
           break
         }
@@ -463,14 +463,88 @@
 }
 
 
-const openAlert = (options) => {
-  if (options.type === 'message') {
-    VXETable.modal.message(options)
-  } else {
-    VXETable.modal.alert(options)
-  }
+import type { FormInstance, FormRules } from 'element-plus'
 
+
+
+
+interface RuleForm {
+  name: string
+  region: string
+  count: string
+  date1: string
+  date2: string
+  delivery: boolean
+  type: string[]
+  resource: string
+  desc: string
 }
+const ruleFormRef = ref<FormInstance>()
+const ruleForm = reactive<RuleForm>({
+  name: '',
+  region: '',
+  count: '',
+  date1: '',
+  date2: '',
+  delivery: false,
+  type: [],
+  resource: '',
+  desc: '',
+})
+const rules = reactive<FormRules<RuleForm>>({
+  name: [
+    { required: true, message: 'Please input Activity name', trigger: 'blur' },
+    { min: 3, max: 5, message: 'Length should be 3 to 5', trigger: 'blur' },
+  ],
+  region: [
+    {
+      required: true,
+      message: 'Please select Activity zone',
+      trigger: 'change',
+    },
+  ],
+  count: [
+    {
+      required: true,
+      message: 'Please select Activity count',
+      trigger: 'change',
+    },
+  ],
+  date1: [
+    {
+      type: 'date',
+      required: true,
+      message: 'Please pick a date',
+      trigger: 'change',
+    },
+  ],
+  date2: [
+    {
+      type: 'date',
+      required: true,
+      message: 'Please pick a time',
+      trigger: 'change',
+    },
+  ],
+  type: [
+    {
+      type: 'array',
+      required: true,
+      message: 'Please select at least one activity type',
+      trigger: 'change',
+    },
+  ],
+  resource: [
+    {
+      required: true,
+      message: 'Please select activity resource',
+      trigger: 'change',
+    },
+  ],
+  desc: [
+    { required: true, message: 'Please input activity form', trigger: 'blur' },
+  ],
+})
 
 
 const form = reactive({
@@ -487,10 +561,6 @@
   buyType: ''
 
 })
-
-const onSubmit = () => {
-  console.log('submit!')
-}
 
 //渚涘簲鍟�
 const buyerOptions = [
@@ -573,23 +643,82 @@
 
 ]
 
-import dayjs from 'dayjs'
-import {VXETable} from "vxe-table";
-import {useRouter} from "vue-router";
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+  const $grid = xGrid.value
+  switch (type) {
+    case '鍏ュ簱':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //閫�璐ч�昏緫浠g爜TODO
+      MessageShow('閫�璐ф垚鍔燂紒', 'success');
+      break;
+    case '淇濆瓨璁㈠崟':
+      //淇濆瓨璁㈠崟閫昏緫浠g爜TODO
+      const submitForm = async (formEl: FormInstance | undefined) => {
+        if (!formEl) return
+        await formEl.validate((valid, fields) => {
+          if (valid) {
+            console.log('submit!')
+          } else {
+            console.log('error submit!', fields)
+          }
+        })
+      }
+      MessageShow('璁㈠崟淇濆瓨鎴愬姛锛�', 'success');
+      break;
+    case '绉婚櫎':
+      $grid.removeCheckboxRow();
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+
+}
+
+//鎻愮ず淇℃伅
+const MessageShow = (content, type ) => {
+
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title='鎿嶄綔纭鎻愮ず', type='warning') => {
+
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+        return logicExecute(czType);
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
 
 
 </script>
-
-
 <style scoped>
-.custom-header {
-  .el-checkbox {
-    display: flex;
-    height: unset;
-  }
-}
-
-.item-style {
-  width: 300px;
+:deep(.el-descriptions__table .label-diy) {
+  text-align: center;
+  width: 100px;
+  /*font-size: large;*/
 }
 </style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Details.vue b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Details.vue
new file mode 100644
index 0000000..8ee52de
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Details.vue
@@ -0,0 +1,453 @@
+<template>
+  <el-header height="auto">
+    <el-descriptions
+        class="margin-top"
+        title=""
+        :column="4"
+        :size="'default'"
+        border
+    >
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          鎿嶄綔鍗曞彿
+        </template>
+        <el-input v-model="form.buyItem" placeholder="鍗曞彿" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘绫诲瀷
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘绫诲瀷" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘閮ㄩ棬
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘閮ㄩ棬" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          渚涘簲鍟�
+        </template>
+        <el-input v-model="form.buyItem" placeholder="渚涘簲鍟�" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘鍛�
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘鍛�" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          閲囪喘缁勭粐
+        </template>
+        <el-input v-model="form.buyItem" placeholder="閲囪喘缁勭粐" disabled></el-input>
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy">
+        <template #label>
+          鍒惰〃鏃ユ湡
+        </template>
+        <el-date-picker
+            v-model="form.date"
+            type="date"
+            placeholder="閫夋嫨鍒惰〃鏃ユ湡"
+        />
+      </el-descriptions-item>
+
+      <el-descriptions-item label-class-name="label-diy" class-name="content-diy"></el-descriptions-item>
+
+    </el-descriptions>
+  </el-header>
+
+  <el-main style="padding-top: 5px;height:100%">
+    <vxe-grid
+        max-height="500"
+        @filter-change="filterChanged"
+        ref="xGrid"
+        v-bind="gridOptions"
+        v-on="gridEvents"
+    >
+
+      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+      <template #content="{ row}">
+        <ul class="expand-wrapper">
+          <li v-for="(item,key,index) in row">
+            <span style="font-weight: bold">{{ key + ':  ' }}</span>
+            <span>{{ item }}</span>
+          </li>
+        </ul>
+      </template>
+
+    </vxe-grid>
+
+  </el-main>
+
+</template>
+
+<script setup>
+import {ref, reactive} from 'vue'
+
+let router = useRouter()
+import {useRouter} from "vue-router";
+import { ElMessage, ElMessageBox} from "element-plus";
+
+const value = ref('')
+
+//缁勪欢鎺ユ敹鍙傛暟
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  //寮�鍚櫄鎷熸粴鍔�
+  scrollY: {enabled: true},
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  //绛涢�夐厤缃」
+  filterConfig: {
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },
+  //琛ㄥご鍙傛暟銆佸垪鍚�
+  columns: [
+    {type: 'seq', fixed: "left", title: ' ', width: 50},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '鐗╂枡缂栫爜',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'gys',
+      width: '10%',
+      title: '浜у湴',
+
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'w',
+      width: '8%',
+      title: '瀹藉害',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'g',
+      width: '8%',
+      title: '楂樺害',
+      filters: [{data: ''}],
+      sortable: true,
+
+    },
+    {
+      field: 'h',
+      width: '8%',
+      title: '鍘氬害',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'xh',
+      width: '8%',
+      title: '鍨嬪彿',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'dw',
+      width: '8%',
+      title: '鍗曚綅',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鏁伴噺',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'czsl',
+      width: '8%',
+      title: '鎿嶄綔鏁伴噺',
+      type: 'number',
+      editRender: {name: 'input', type: 'number', attrs: {placeholder: ''}}
+    },
+    {
+      field: 'sl',
+      width: '12%',
+      title: '绠辨暟',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '8%',
+      title: '鍗曠墖闈㈢Н',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'je',
+      width: '12%',
+      title: '鍗曚环',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'sl',
+      width: '8%',
+      title: '鎬婚潰绉�',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '鎬婚噾棰�',
+      filters: [{data: ''}],
+      sortable: true
+    },
+    {
+      field: 'yl',
+      width: '10%',
+      title: '澶囨敞',
+      filters: [{data: ''}],
+      sortable: true
+    }
+  ],
+  //琛ㄥご鎸夐挳
+  toolbarConfig: {
+    buttons: [
+      {type: 'text'},
+      {
+        'name': '淇濆瓨璁㈠崟',
+        status: 'primary',
+        'code': 'Save'
+      }, {
+        'name': '鍏ュ簱',
+        status: 'primary',
+        'code': 'Storage'
+      },
+      {
+        'name': '閫�璐�',
+        status: 'primary',
+        'code': 'Return'
+      },
+      {
+        'name': '鍙栨秷',
+        status: '',
+        'code': 'Cancel'
+      }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true,
+    tools: [],
+
+  },
+  //table body瀹為檯鏁版嵁
+  data: [{}, {}, {}],
+  //鑴氬悎骞�
+  mergeFooterItems: [
+    {row: 0, col: 0, rowspan: 1, colspan: 3}
+  ],
+  //鍚堝苟鑴�
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        /* if (props.tableProp.footList.includes(column.field)) {
+           return sumNum(data, column.field)
+         }*/
+        return ''
+      })
+    ]
+  },
+
+})
+
+const xGrid = ref()
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+//淇濆瓨
+        case 'Save': {
+          MessageAlertShow('鐐瑰嚮浜嗕繚瀛樿鍗�','鎿嶄綔鎻愮ず');
+          //MessageShow('鐐瑰嚮浜嗕繚瀛樿鍗曪紒', 'error');
+          break;
+        }
+//鍙栨秷锛岃繑鍥炴煡璇㈤〉闈�
+        case 'Cancel': {
+          router.push({path: '/main/purchaseOrder/StoragePurchaseOrder'})
+          break
+        }
+//鍏ュ簱
+        case 'Storage': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹紒', 'warning');
+            return
+          } else {
+            MessageConfirmShow('鍏ュ簱', '鏄惁纭瀵归�変腑鐨�' + $grid.getCheckboxRecords().length + '鐗╂枡杩涜鍏ュ簱鎿嶄綔锛�');
+          }
+          break
+        }
+//閫�璐�
+        case 'Return': {
+          if ($grid.getCheckboxRecords().length === 0) {
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹紒', 'warning');
+            return
+          } else {
+
+            MessageConfirmShow('閫�璐�', '鏄惁纭瀵归�変腑鐨�' + $grid.getCheckboxRecords().length + '鐗╂枡杩涜閫�璐ф搷浣滐紒');
+          }
+          break
+        }
+
+      }
+    }
+  },
+  toolbarToolClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'myPrint': {
+          $grid.print()
+          break
+        }
+      }
+    }
+  },
+}
+
+//琛ㄥ崟鏁版嵁
+const form = reactive({
+  name: '',
+  region: '',
+  date: '',
+  delivery: false,
+  type: [],
+  resource: '',
+  desc: '',
+  supplier: '',
+  buyer: '',
+  buyItem: '',
+  buyType: ''
+
+})
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+  const $grid = xGrid.value
+  switch (type) {
+    case '鍏ュ簱':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //閫�璐ч�昏緫浠g爜TODO
+      MessageShow('閫�璐ф垚鍔燂紒', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content,type='success') => {
+    ElMessage({
+      message: content,
+      type: type,
+      showClose: true,
+    })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title='鎿嶄綔纭鎻愮ず', type='warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        return logicExecute(czType);
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow=(content,title,type='info')=>{
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
+</script>
+
+
+<style scoped>
+:deep(.el-descriptions__table .label-diy) {
+  text-align: center;
+  width: 100px;
+  /*  font-size: large;*/
+}
+</style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Payment.vue b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Payment.vue
index 8b12b58..475da20 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Payment.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Payment.vue
@@ -39,14 +39,13 @@
           @="gridEvents"
 
       >
-        <!--            @="gridEvents"-->
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+
         <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
+        <template #content="{ row }">
           <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
+            <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{item.title+':  '}}</span>
+              <span>{{ row[item.field] }}</span>
             </li>
           </ul>
         </template>
@@ -79,6 +78,9 @@
 import {VXETable} from "vxe-table";
 import {reactive} from "vue";
 import {useRouter} from 'vue-router'
+import {ElMessage, ElMessageBox} from "element-plus";
+
+const datevalue = ref('')//鏃堕棿
 
 //缁勪欢鎺ユ敹鍙傛暟
 const PayOptions = reactive({
@@ -110,10 +112,10 @@
     showStatus: true
   },
   columns: [
-   /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
-    {type: 'seq', fixed: "left", title: ' ', width: '5%'},
+    /* {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},*/
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: '5%'},//璇︽儏
     {type: 'checkbox', fixed: "left", title: '', width: '5%'},
-    {type: 'expand', title: '璇︽儏', fixed: "left", slots: {content: 'content'}, width: '5%'},
+    {type: 'seq', fixed: "left", title: ' ', width: '5%'},
     {
       field: 'cgdh',
       width: '10%',
@@ -147,15 +149,29 @@
       slots: {filter: 'num1_filter'},
       sortable: true
     },
-    {field: 'w', width: '10%', title: '鏈湡宸蹭粯', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '10%', title: '鏈熸湯浣欓', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'w',
+      width: '10%',
+      title: '鏈湡宸蹭粯',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'g',
+      width: '10%',
+      title: '鏈熸湯浣欓',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {field: 'h', width: '9%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
     {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
   ],//琛ㄥご鍙傛暟
   toolbarConfig: {
-    buttons: [{type:'text'},{
+    buttons: [{type: 'text'}, {
       'name': '搴斾粯纭',
-      status:'primary',
+      status: 'primary',
       'code': 'Sure',
     }],
     import: false,
@@ -165,7 +181,7 @@
     custom: true,
     style: 'paddling-left:10px'
   },//琛ㄥご鎸夐挳
-  data: [{},{},{},{}],//table body瀹為檯鏁版嵁
+  data: [{}, {}, {}, {}],//table body瀹為檯鏁版嵁
   mergeFooterItems: [
     {row: 0, col: 0, rowspan: 1, colspan: 3}
   ],//鍚堝苟鑴�
@@ -192,49 +208,13 @@
     const $grid = xGrid.value
     if ($grid) {
       switch (code) {
-        case 'Add': {//鏂板
-          router.push({path: '/main/purchaseOrder/CreatePurchaseOrder'})
-          break
-        }
-        case 'Storage': {//鍏ュ簱
+          //搴斾粯纭
+        case 'Sure': {
           if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+            MessageShow("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�!", 'warning');
             return
           } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }
-          break
-        }
-        case 'Return': {//閫�搴�
-          if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          } else {
-            /*            async ()=>{
-              const type = await.VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-            }*/
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�搴擄紵');
-
-
-            /* if(VXETable.modal.confirm('鎮ㄩ�夋嫨浜�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒,鏄惁纭閫�搴擄紵' )){
-              //openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success',lockView: false, mask: false })
-
-
-            }*/
-
-            /* if(type==='confirm'){
-              openAlert({type:'message', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            }
-
-*/
-            //openAlert({type:'alert', content: '鎴愬姛閫�搴�'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
+            MessageConfirmShow("纭搴斾粯", '鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭搴斾粯锛�')
           }
           break
         }
@@ -254,16 +234,7 @@
   },
 }
 
-const openAlert = (options) => {
-  if (options.type === 'message') {
-    VXETable.modal.message(options)
-  } else {
-    VXETable.modal.alert(options)
-  }
 
-}
-
-const datevalue = ref('')
 
 const shortcuts = [
   {
@@ -294,6 +265,73 @@
     },
   },
 ]
+
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type){
+  const $grid = xGrid.value
+  switch (type) {
+    case '纭搴斾粯':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+
+  }
+  return true;
+}
+
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        return  logicExecute(czType);
+
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
 </script>
 
 
diff --git a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/PurchaseOrder.vue b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/PurchaseOrder.vue
index dceff81..c95d058 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/PurchaseOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/PurchaseOrder.vue
@@ -39,6 +39,7 @@
 <script setup>
 import {nextTick, ref} from 'vue'
 import {ArrowRight, Search} from "@element-plus/icons-vue";
+import {ElMessage, ElMessageBox} from "element-plus";
 
 let indexFlag = $ref(1)
 
@@ -46,6 +47,69 @@
   indexFlag = index
 }
 
+/*
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') =>{
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+        switch (czType) {
+          case '纭畾':
+            //澶氶�夐��璐ч�昏緫浠g爜TODO
+            MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+            break;
+          case '閫�璐�':
+            //鍗曢��璐ч�昏緫浠g爜TODO
+            MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+            break;
+          default:
+            MessageShow('鏈煡鎿嶄綔锛�', 'error');
+            break;
+        }
+
+        return true;
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /!*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*!/
+  })
+}
+
+*/
+
 </script>
 
 
diff --git a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Return.vue b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Return.vue
index 4420a82..6d8e32e 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Return.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Return.vue
@@ -42,11 +42,11 @@
 
         <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
         <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
+        <template #content="{ row }">
           <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
+            <li v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{ item.title + ':  ' }}</span>
+              <span>{{ row[item.field] }}</span>
             </li>
           </ul>
         </template>
@@ -70,12 +70,13 @@
 
 
       <!--      璇︽儏妗� 閮ㄥ垎1-->
-      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false" resize>
-        <el-container >
+      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
+                 resize>
+        <el-container>
           <el-header height="35px"
                      style="margin: 0;padding: 0">
 
-            <el-input  v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled >
+            <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
               <template #prepend>閲囪喘鍗曞彿锛�</template>
             </el-input>
           </el-header>
@@ -119,60 +120,55 @@
 
 
 <script setup>
+
 import {ref} from "vue";
 import {reactive} from "vue";
 import {useRouter} from 'vue-router'
 import {Search} from "@element-plus/icons-vue";
 import dayjs from "dayjs";
-import {VXETable} from "vxe-table";
+import {ElMessage, ElMessageBox} from "element-plus";
+
 
 let router = useRouter()
 const getTableRow = (row, type) => {
   switch (type) {
     case 'edit' : {
       //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}})
+      router.push({path: '/main/purchaseOrder/DetailsPurchaseOrder', query: {id: row.id}})
       break
     }
     case 'delete': {
 
 
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
       break
     }
   }
 }
 
 const xGrid = ref()
+
 const gridEvents = {
   toolbarButtonClick({code}) {
     const $grid = xGrid.value
     if ($grid) {
       switch (code) {
-        case 'Add': {//鏂板
-          router.push({path: '/main/purchaseOrder/CreatePurchaseOrder'})
-          break
-        }
-        case 'Sure':{
+        case 'Sure': {
           if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�!', 'warning');
+
             return
           } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�璐э紵');
-            //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
-            //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
+
+            MessageConfirmShow('纭畾', '鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�璐э紵')
           }
           break
         }
-        case 'Log':{
-
-          openAlert({type: 'alert', content: '鐐瑰嚮浜嗛��璐ц褰�', status: 'success'})
+        case 'Log': {
+          MessageAlertShow('鐐瑰嚮浜嗛��璐ц褰�!', '鎿嶄綔鎻愮ず');
           break
         }
-
       }
     }
   },
@@ -189,44 +185,33 @@
   },
 }
 
-const openAlert = (options) => {
-  if(options.type==='message'){
-    VXETable.modal.message(options)
-  }else{
-    VXETable.modal.alert(options)
-  }
 
-}
-const closeAlert = (id) => {
-  VXETable.modal.close(id)
-}
+//鏌ヨ鎸夐挳鏂规硶
+const BtnSearchPurchaseOrder = () => {
 
-const confirmEvent = async () => {
-  const type = await VXETable.modal.confirm('鎮ㄧ‘瀹氳鍒犻櫎鍚楋紵')
-  VXETable.modal.message({ content: `鐐瑰嚮浜� ${type}` })
-}
+  //寮�濮嬫椂闂达紝缁撴潫鏃堕棿鑾峰彇
+  //MessageShow("寮�濮嬫椂闂�"+datevalue._rawValue[0]+"\r\n缁撴潫鏃堕棿\r\n"+datevalue._rawValue[1]);
 
-const BtnSearchPurchaseOrder =()=>{
   for (let i = 1; i < 6; i++) {
     const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
     const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
     const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
     const t = i % 2 === 0 ? 5 : 6;
-    const s = i % 2 === 0 ?  '鍏ュ簱' :i % 3 === 0?'閫�璐�':'閮ㄥ垎鍏ュ簱';
-    const thdh = i % 2 === 0 ?  '' :i % 3 === 0?'THID'+randomOrderInt:'';
+    const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '閫�璐�' : '閮ㄥ垎鍏ュ簱';
+    const thdh = i % 2 === 0 ? '' : i % 3 === 0 ? 'THID' + randomOrderInt : '';
     const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
     const wlNo = 'NGWL1000' + randomInt;
     const xh = 'NGXH' + randomSumInt;
     const wlmc = 'WLMC' + randomInt;
     const gys = '渚涘簲鍟�' + randomSumInt;
-    const xhdh='NG231200'+randomOrderInt;
+    const xhdh = 'NG231200' + randomOrderInt;
     const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
     const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
     const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
     now.setDate(now.getDate() + 1);
     gridOptions.data.push({
       cgdh: CGNo,
-      thdh:thdh,
+      thdh: thdh,
       h: t,
       xh: xh,
       wlbh: wlNo,
@@ -235,19 +220,18 @@
       w: w,
       g: h,
       dw: dw,
-      cgzt:s,
-      rq:dayjs(now).format('YYYY-MM-DD'),
-      yl:randomSumInt,
-      sl:randomOrderInt,
-      xsdh:xhdh,
-      je:randomInt,
+      cgzt: s,
+      rq: dayjs(now).format('YYYY-MM-DD'),
+      yl: randomSumInt,
+      sl: randomOrderInt,
+      xsdh: xhdh,
+      je: randomInt,
       6: '139xxxxxxxx',
 
     })
   }
 
 }
-
 
 
 //缁勪欢鎺ユ敹鍙傛暟
@@ -280,48 +264,141 @@
     showStatus: true
   },
   columns: [
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
     {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
     {type: 'seq', fixed: "left", title: ' ', width: 50},
-    { type: 'checkbox',fixed:"left", title: '', width: 50 },
-    {type: 'expand', title:'璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
-    {field: 'thdh', width: '10%', title: '閫�璐у崟鍙�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgdh', width: '10%', title: '閲囪喘鍗曞彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+
+
+    {
+      field: 'thdh',
+      width: '10%',
+      title: '閫�璐у崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '閲囪喘鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'gys', width: '10%',title: '渚涘簲鍟�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbh', width: '10%',title: '鐗╂枡缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%', title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xh', width: '8%',title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dw', width: '8%',title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '12%',title: '涓嶅惈绋庡崟浠�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '12%',title: '宸查噰璐暟閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '8%',title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '12%',title: '涓嶅惈绋庨噾棰�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '8%',title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%',title: '鍗曟嵁鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xsdh', width: '10%',title: '閿�鍞崟鍙�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'rq', width: '10%',title: '鍒跺崟鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'gys',
+      width: '10%',
+      title: '渚涘簲鍟�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlbh',
+      width: '10%',
+      title: '鐗╂枡缂栧彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlmc',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '12%',
+      title: '涓嶅惈绋庡崟浠�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'sl',
+      width: '12%',
+      title: '宸查噰璐暟閲�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'je',
+      width: '12%',
+      title: '涓嶅惈绋庨噾棰�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鍗曟嵁鐘舵��',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'xsdh',
+      width: '10%',
+      title: '閿�鍞崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'rq',
+      width: '10%',
+      title: '鍒跺崟鏃ユ湡',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '閲囪喘閮ㄩ棬', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '閲囪喘缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘閮ㄩ棬',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘缁勭粐',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
   ],//琛ㄥご鍙傛暟
   toolbarConfig: {
-    buttons: [{type:'text'},{
-        'name': '閫�璐ц褰�',
+    buttons: [{type: 'text'}, {
+      'name': '閫�璐ц褰�',
 
-        'code':'Log'
-      },
+      'code': 'Log'
+    },
       {
         'name': '纭閫�璐�',
-        status:'primary',
-        'code':'Sure'
+        status: 'primary',
+        'code': 'Sure'
       }],
     import: false,
     export: true,
@@ -352,65 +429,52 @@
 
 
 //璇︽儏妗� 閮ㄥ垎2
-const showCGDH =ref();
-const showDetails =ref(false);
-let detailData =[];
+const showCGDH = ref();
+const showDetails = ref(false);
+let detailData = [];
 const cellClickEvent = ({row}) => {
-  detailData = ['cgdh', 'thdh', 'h', 'xh', 'wlbh', 'wlmc', 'gys','w','g','dw','cgzt','rq','yl','sl','xsdh','je','6'].map(field => {
-    return { label: ModelColumnContent(field) , value: row[field] }
+  if (isQueryColumnId === false) {
+    queryColumnId();
+  }
 
+  detailData = list.map(field => {
+    return {label: queryColumnsTitle(field), value: row[field]}
   })
   showDetails.value = true;
   showCGDH.value = row['cgdh'];
 }
 
-const ModelColumnContent = (text) => {
-  switch (text) {
-    case 'cgdh':
-      return "閲囪喘鍗曞彿";
-    case 'thdh':
-      return "閫�璐у崟鍙�";
-    case 'h':
-      return "鍘�";
-    case 'xh':
-      return "鍨嬪彿";
-    case 'wlbh':
-      return "鐗╂枡缂栫爜";
-    case 'wlmc':
-      return "鐗╂枡鍚嶇О";
-    case 'gys':
-      return "渚涘簲鍟�";
-    case 'w':
-      return "瀹�";
-    case 'g':
-      return "楂�";
-    case 'dw':
-      return "鍗曚綅";
-    case 'cgzt':
-      return "閲囪喘鐘舵��";
-    case 'rq':
-      return "鏃ユ湡";
-    case 'yl':
-      return "浣欓噺";
-    case 'sl':
-      return "鏁伴噺";
-    case 'xsdh':
-      return "閿�鍞崟鍙�";
-    case 'je':
-      return "閲戦";
-    case '6':
-      return "鍏朵粬";
+//鑾峰彇琛ㄥ垪
+let list = [];
+let columnIndex = 4;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
+let isQueryColumnId = false;
+const queryColumnId = () => {
 
-    default:
-      return text;
-
+  while (columnIndex < gridOptions.columns.length) {
+    list.push(gridOptions.columns[columnIndex].field);
+    columnIndex++;
   }
-
+  isQueryColumnId = true;
+  return list;
 }
 
-const SureReturn=()=>{
+//鑾峰彇琛ㄥ垪鍚�
+function queryColumnsTitle(cn) {
+  let i = 0;
+  while (i < gridOptions.columns.length + 1) {
+    if (gridOptions.columns[i].field === cn) {
+      return gridOptions.columns[i].title;
+    }
+    i++;
+  }
+}
 
-  const type = VXETable.modal.confirm('鏄惁纭閫�璐э紵');
+// 璇︽儏妗嗛儴鍒�2 缁撴潫
+
+const SureReturn = () => {
+
+  MessageConfirmShow('閫�璐�', '鏄惁纭閫�璐э紵')
+
 }
 
 //璇︽儏妗� 閮ㄥ垎2 缁撴潫
@@ -450,12 +514,80 @@
   },
 ]
 
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type) {
+  const $grid = xGrid.value
+  switch (type) {
+    case '纭畾':
+      //澶氶�夐��璐ч�昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //鍗曢��璐ч�昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
+
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        logicExecute(czType);
+
+        return true;
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
 </script>
 
 
 <style scoped>
-:deep(.v-column-label div span){
+:deep(.v-column-label div span) {
   font-weight: bold;
-  font-align:center;
 }
 </style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Select.vue b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Select.vue
index 11161c1..29b29e8 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Select.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Select.vue
@@ -28,24 +28,24 @@
         </el-col>
       </el-row>
     </el-header>
+
     <el-main style="padding-top: 5px;height:100%">
       <vxe-grid
-
           max-height="600"
           @filter-change="filterChanged"
           class="mytable-scrollbar"
           ref="xGrid"
           v-bind="gridOptions"
           v-on="gridEvents"
+          @cell-dblclick="cellClickEvent"
       >
 
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
         <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
+        <template #content="{ row }">
           <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
+            <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{item.title+':  '}}</span>
+              <span>{{ row[item.field] }}</span>
             </li>
           </ul>
         </template>
@@ -53,8 +53,8 @@
         <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
         <template #button_slot="{ row }">
           <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-<!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
-<!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
+          <!--          <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>-->
+          <!--          <el-button @click="cellClickEvent" link type="primary" size="small">璇︽儏</el-button>-->
         </template>
 
 
@@ -67,23 +67,49 @@
         </template>
       </vxe-grid>
 
+      <!--      璇︽儏妗� 閮ㄥ垎1-->
+      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
+                 resize>
+        <el-container>
+          <el-header height="35px"
+                     style="margin: 0;padding: 0">
 
-      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="400" :mask="false" :lock-view="false" resize>
-        <template #default>
-          <vxe-table
-              border="inner"
-              auto-resize
-              show-overflow
-              height="auto"
-              :row-config="{isHover: true}"
-              :show-header="false"
-              :sync-resize="showDetails"
-              :data="detailData">
-            <vxe-column field="label" width="40%"></vxe-column>
-            <vxe-column field="value"></vxe-column>
-          </vxe-table>
-        </template>
+            <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
+              <template #prepend>閲囪喘鍗曞彿锛�</template>
+            </el-input>
+          </el-header>
+          <el-main>
+            <template #default>
+              <vxe-table
+                  border="inner"
+                  auto-resize
+                  show-overflow
+                  max-height="400"
+                  :row-config="{isHover: true}"
+                  :show-header="false"
+                  :sync-resize="showDetails"
+                  :data="detailData">
+                <vxe-column field="label" width="30%" class-name="v-column-label"></vxe-column>
+                <vxe-column field="value"></vxe-column>
+              </vxe-table>
+            </template>
+          </el-main>
+          <el-footer height="40px">
+            <el-row>
+              <el-col :offset="20" :span="4">
+                <el-button
+                    id="Sure"
+                    type="primary"
+                    @click="logicExecute('缂栬緫')"
+                >缂栬緫
+                </el-button>
+              </el-col>
+
+            </el-row>
+          </el-footer>
+        </el-container>
       </vxe-modal>
+      <!--      璇︽儏妗� 閮ㄥ垎1 缁撴潫-->
 
 
     </el-main>
@@ -97,7 +123,9 @@
 import {useRouter} from 'vue-router'
 import {Search} from "@element-plus/icons-vue";
 import dayjs from "dayjs";
-import {VXETable} from "vxe-table";
+import {ElMessage} from "element-plus";
+
+
 
 let router = useRouter()
 const getTableRow = (row, type) => {
@@ -110,8 +138,7 @@
     case 'delete': {
 
 
-
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
       break
     }
   }
@@ -128,7 +155,8 @@
           break
         }
         case 'AddNo': {//鏃犲崟鏂板
-          openAlert({type: 'alert', content: '鐐瑰嚮浜嗘棤鍗曟柊澧�', status: 'success'})
+
+          MessageShow('鐐瑰嚮浜嗘棤鍗曟柊澧�', 'success');
           break
         }
 
@@ -148,36 +176,19 @@
   },
 }
 
-const openAlert = (options) => {
-  if(options.type==='message'){
-    VXETable.modal.message(options)
-  }else{
-    VXETable.modal.alert(options)
-  }
-
-}
-const closeAlert = (id) => {
-  VXETable.modal.close(id)
-}
-
-const confirmEvent = async () => {
-  const type = await VXETable.modal.confirm('鎮ㄧ‘瀹氳鍒犻櫎鍚楋紵')
-  VXETable.modal.message({ content: `鐐瑰嚮浜� ${type}` })
-}
-
-const BtnSearchPurchaseOrder =()=>{
+const BtnSearchPurchaseOrder = () => {
   for (let i = 1; i < 6; i++) {
     const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
     const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
     const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
     const t = i % 2 === 0 ? 5 : 6;
-    const s = i % 2 === 0 ? '鍏ュ簱':i % 3 === 0 ? '寰呭鏍�' : i % 5 === 0 ? '宸查噰璐�' :'閫�搴�';
+    const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '寰呭鏍�' : i % 5 === 0 ? '宸查噰璐�' : '閫�搴�';
     const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
     const wlNo = 'NGWL1000' + randomInt;
     const xh = 'NGXH' + randomSumInt;
     const wlmc = 'WLMC' + randomInt;
     const gys = '渚涘簲鍟�' + randomSumInt;
-    const xhdh='NG231200'+randomOrderInt;
+    const xhdh = 'NG231200' + randomOrderInt;
     const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
     const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
     const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
@@ -192,12 +203,12 @@
       w: w,
       g: h,
       dw: dw,
-      cgzt:s,
-      rq:dayjs(now).format('YYYY-MM-DD'),
-      yl:randomSumInt,
-      sl:randomOrderInt,
-      xsdh:xhdh,
-      je:randomInt,
+      cgzt: s,
+      rq: dayjs(now).format('YYYY-MM-DD'),
+      yl: randomSumInt,
+      sl: randomOrderInt,
+      xsdh: xhdh,
+      je: randomInt,
       6: '139xxxxxxxx',
 
     })
@@ -205,6 +216,26 @@
 
 }
 
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type) {
+  const $grid = xGrid.value
+  switch (type) {
+    case '缂栬緫':
+      //MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      //缂栬緫閫昏緫浠g爜TODO
+      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder'})
+      break;
+    case '閫�璐�':
+      //鍗曢��璐ч�昏緫浠g爜TODO
+      MessageShow('鎿嶄綔鎴愬姛锛�', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
 
 
 //缁勪欢鎺ユ敹鍙傛暟
@@ -237,36 +268,122 @@
     showStatus: true
   },
   columns: [
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
     {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+    /* {type: 'checkbox',fixed:"left", title: '', width: 50 },*/
     {type: 'seq', fixed: "left", title: ' ', width: 50},
-    { type: 'checkbox',fixed:"left", title: '', width: 50 },
-    {type: 'expand', title:'璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
-    {field: 'cgdh', width: '10%', title: '閲囪喘鍗曞彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+
+
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '閲囪喘鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'gys', width: '10%',title: '渚涘簲鍟�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbh', width: '10%',title: '鐗╂枡缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%', title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xh', width: '8%',title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dw', width: '8%',title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '12%',title: '涓嶅惈绋庡崟浠�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '12%',title: '宸查噰璐暟閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '8%',title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '12%',title: '涓嶅惈绋庨噾棰�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '8%',title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%',title: '鍗曟嵁鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xsdh', width: '10%',title: '閿�鍞崟鍙�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'rq', width: '10%',title: '鍒跺崟鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'gys',
+      width: '10%',
+      title: '渚涘簲鍟�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlbh',
+      width: '10%',
+      title: '鐗╂枡缂栧彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlmc',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '12%',
+      title: '涓嶅惈绋庡崟浠�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'sl',
+      width: '12%',
+      title: '宸查噰璐暟閲�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'je',
+      width: '12%',
+      title: '涓嶅惈绋庨噾棰�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鍗曟嵁鐘舵��',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'xsdh',
+      width: '10%',
+      title: '閿�鍞崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'rq',
+      width: '10%',
+      title: '鍒跺崟鏃ユ湡',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '閲囪喘閮ㄩ棬', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '閲囪喘缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘閮ㄩ棬',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘缁勭粐',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
   ],//琛ㄥご鍙傛暟
   toolbarConfig: {
     buttons: [/*{type:'text'},
@@ -281,7 +398,7 @@
 
         'code':'AddNo'
       }*/
-      ],
+    ],
     import: false,
     export: true,
     print: true,
@@ -309,14 +426,47 @@
 
 })
 
-/*const showDetails = ref(false)
-const detailData = ref([])
-const cellClickEvent = ({ row }) => {
-  detailData.value = ['閲囪喘鍗曞彿', 'wlbh', 'wlmc', 'gys', 'h', 'k', 'g'].map(field => {
-    return { label: field, value: row[field] }
+//璇︽儏妗� 閮ㄥ垎2
+const showCGDH = ref();
+const showDetails = ref(false);
+let detailData = [];
+const cellClickEvent = ({row}) => {
+  if(isQueryColumnId===false){
+    queryColumnId();
+  }
+
+  detailData = list.map(field => {
+    return {label: queryColumnsTitle(field), value: row[field]}
   })
-  showDetails.value = true
-}*/
+
+  showDetails.value = true;
+  showCGDH.value = row['cgdh'];
+}
+
+//鑾峰彇琛ㄥ垪
+let list = [];
+let columnIndex = 3;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
+let isQueryColumnId = false;
+const queryColumnId = () => {
+  while (columnIndex < gridOptions.columns.length) {
+    list.push(gridOptions.columns[columnIndex].field);
+    columnIndex++;
+  }
+  isQueryColumnId = true;
+  return list;
+}
+
+//鑾峰彇琛ㄥ垪鍚�
+function queryColumnsTitle(cn) {
+  let i = 0;
+  while (i < gridOptions.columns.length + 1) {
+    if (gridOptions.columns[i].field === cn) {
+      return gridOptions.columns[i].title;
+    }
+    i++;
+  }
+}
+//璇︽儏妗� 閮ㄥ垎2 缁撴潫
 
 
 const now = new Date()
@@ -353,9 +503,60 @@
   },
 ]
 
+
+//鎻愮ず淇℃伅
+//淇℃伅鍐呭锛屾樉绀烘柟寮忥紝鏄剧ず鏍囬锛岀被鍨�
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+
+        logicExecute(czType);
+
+        return true;
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
+//寮圭獥淇℃伅
+const MessageAlertShow = (content, title, type = 'info') => {
+
+  ElMessageBox.alert(content, title, {
+    // 绂佹鑷姩瀵圭劍
+    //autofocus: false,
+    confirmButtonText: 'OK',
+    /*callback: (action: Action) => {
+      MessageShow(`action: ${action}`,type)
+    },*/
+  })
+}
+
 </script>
 
 
 <style scoped>
-
+:deep(.v-column-label div span) {
+  font-weight: bold;
+}
 </style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Storage.vue b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Storage.vue
index 2e394f9..0f3b544 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Storage.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/purchaseOrder/Storage.vue
@@ -29,8 +29,6 @@
       </el-row>
 
 
-
-
     </el-header>
     <el-main style="padding-top: 5px;height:100%">
       <vxe-grid
@@ -42,16 +40,16 @@
           v-bind="gridOptions"
           v-on="gridEvents"
 
-          @cell-click ="cellClickEvent"
+          @cell-dblclick="cellClickEvent"
+
       >
 
-        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
         <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
-        <template #content="{ row}">
+        <template #content="{ row }">
           <ul class="expand-wrapper">
-            <li v-for="(item,key,index) in row">
-              <span style="font-weight: bold">{{ key + ':  ' }}</span>
-              <span>{{ item }}</span>
+            <li v-for="(item,index) in gridOptions.columns" v-show="item.field!==undefined ">
+              <span style="font-weight: bold">{{ item.title + ':  ' }}</span>
+              <span>{{ row[item.field] }}</span>
             </li>
           </ul>
         </template>
@@ -74,13 +72,14 @@
         </template>
       </vxe-grid>
 
-<!--      璇︽儏妗� 閮ㄥ垎1-->
-      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false" resize>
-        <el-container >
+      <!--      璇︽儏妗� 閮ㄥ垎1-->
+      <vxe-modal v-model="showDetails" title="鏌ョ湅璇︽儏" width="600" height="80%" :mask="false" :lock-view="false"
+                 resize>
+        <el-container>
           <el-header height="35px"
-              style="margin: 0;padding: 0">
+                     style="margin: 0;padding: 0">
 
-            <el-input  v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled >
+            <el-input v-model="showCGDH" placeholder="閲囪喘鍗曞彿" disabled>
               <template #prepend>閲囪喘鍗曞彿锛�</template>
             </el-input>
           </el-header>
@@ -90,7 +89,7 @@
                   border="inner"
                   auto-resize
                   show-overflow
-                  max-height="420"
+                  max-height="400"
                   :row-config="{isHover: true}"
                   :show-header="false"
                   :sync-resize="showDetails"
@@ -122,8 +121,6 @@
   </el-container>
 
 
-
-
 </template>
 
 
@@ -134,27 +131,29 @@
 import {Search} from "@element-plus/icons-vue";
 import dayjs from "dayjs";
 import {VXETable} from "vxe-table";
-let router = useRouter()
+import {ElMessage, ElMessageBox} from "element-plus";
+import ERPMessage from '@/components/basic/ERPMessage.vue'
 
+let router = useRouter()
 
 
 const getTableRow = (row, type) => {
   switch (type) {
     case 'edit' : {
       //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/purchaseOrder/CreatePurchaseOrder', query: {id: row.id}});
+      router.push({path: '/main/purchaseOrder/DetailsPurchaseOrder', query: {id: row.id}});
 
       break
     }
-    case 'look':{
+    case 'look': {
       /*this.detailData = ['name', 'nickname', 'role', 'sex', 'age', 'amount', 'address'].map(field => {
         return { label: field, value: row[field] }
       })*/
       //this.showDetails = true
-break
+      break
     }
     case 'delete': {
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅'+row.id)
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅' + row.id)
       break
     }
   }
@@ -166,22 +165,24 @@
     const $grid = xGrid.value
     if ($grid) {
       switch (code) {
-        case 'Sure':{
+        case 'Sure': {
           if ($grid.getCheckboxRecords().length === 0) {
-            openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
+            MessageShow('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', 'warning');
+            //openAlert({type: 'message', content: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', status: 'warning'})
             //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
             return
           } else {
-            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭閫�璐э紵');
+            const type = VXETable.modal.confirm('鎮ㄩ�夋嫨浜�' + $grid.getCheckboxRecords().length + '鏉℃暟鎹紒,鏄惁纭鍏ュ簱锛�');
             //openAlert({type:'alert', content: '鎴愬姛鍏ュ簱'+$grid.getCheckboxRecords().length+'鏉℃暟鎹紒', status: 'success' })
             //VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
             return
           }
           break
         }
-        case 'Log':{
+        case 'Log': {
 
-          openAlert({type: 'alert', content: '鐐瑰嚮浜嗛��璐ц褰�', status: 'success'})
+          //openAlert({type: 'alert', content: '鐐瑰嚮浜嗛��璐ц褰�', status: 'success'})
+          MessageConfirmShow("閫�璐ц褰�", "鐐瑰嚮浜嗛��璐ц褰�", "", 'success')
           break
         }
       }
@@ -201,9 +202,9 @@
 }
 
 const openAlert = (options) => {
-  if(options.type==='message'){
+  if (options.type === 'message') {
     VXETable.modal.message(options)
-  }else{
+  } else {
     VXETable.modal.alert(options)
   }
 
@@ -212,32 +213,32 @@
   VXETable.modal.close(id)
 }
 
-const confirmEvent = async () => {
-  const type = await VXETable.modal.confirm('鎮ㄧ‘瀹氳鍒犻櫎鍚楋紵')
-  VXETable.modal.message({ content: `鐐瑰嚮浜� ${type}` })
-}
 
-const BtnSearchPurchaseOrder =()=>{
+//鏌ヨ璋冪敤浜嬩欢
+const BtnSearchPurchaseOrder = () => {
+  //寮�濮嬫椂闂达紝缁撴潫鏃堕棿鑾峰彇
+  //MessageShow(datevalue._rawValue[0]+"\r\n鏃堕棿2\r\n"+datevalue._rawValue[1]);
+
   for (let i = 1; i < 6; i++) {
     const randomInt = Math.floor(Math.random() * 999) + 1000;//4浣嶆暟闅忔満鏁�
     const randomSumInt = Math.floor(Math.random() * 99) + 10;//2浣嶆暟闅忔満鏁�
     const randomOrderInt = Math.floor(Math.random() * 99) + 100;//3浣嶆暟闅忔満鏁�
     const t = i % 2 === 0 ? 5 : 6;
-    const s = i % 2 === 0 ? '鍏ュ簱':i % 3 === 0 ? '寰呭鏍�' : '宸查噰璐�';
-    const rkdh = i % 2 === 0 ? 'RKID'+randomOrderInt:i % 3 === 0 ? '' : '';
+    const s = i % 2 === 0 ? '鍏ュ簱' : i % 3 === 0 ? '寰呭鏍�' : '宸查噰璐�';
+    const rkdh = i % 2 === 0 ? 'RKID' + randomOrderInt : i % 3 === 0 ? '' : '';
     const CGNo = 'NGCG231200' + randomOrderInt;//閲囪喘缂栧彿
     const wlNo = 'NGWL1000' + randomInt;
     const xh = 'NGXH' + randomSumInt;
     const wlmc = 'WLMC' + randomInt;
     const gys = '渚涘簲鍟�' + randomSumInt;
-    const xhdh='NG231200'+randomOrderInt;
+    const xhdh = 'NG231200' + randomOrderInt;
     const w = i % 2 === 0 ? '3300' : i % 3 === 0 ? '3660' : i % 4 === 0 ? '2250' : '2580';
     const h = i % 2 === 0 ? '2440' : i % 3 === 0 ? '2440' : i % 4 === 0 ? '2000' : '2300';
     const dw = i % 2 === 0 ? '鐗�' : i % 3 === 0 ? '骞崇背' : i % 4 === 0 ? '鍖�' : '鍚�';
     now.setDate(now.getDate() + 1);
     gridOptions.data.push({
       cgdh: CGNo,
-      rkdh:rkdh,
+      rkdh: rkdh,
       h: t,
       xh: xh,
       wlbh: wlNo,
@@ -246,19 +247,18 @@
       w: w,
       g: h,
       dw: dw,
-      cgzt:s,
-      rq:dayjs(now).format('YYYY-MM-DD'),
-      yl:randomSumInt,
-      sl:randomOrderInt,
-      xsdh:xhdh,
-      je:randomInt,
+      cgzt: s,
+      rq: dayjs(now).format('YYYY-MM-DD'),
+      yl: randomSumInt,
+      sl: randomOrderInt,
+      xsdh: xhdh,
+      je: randomInt,
       6: '139xxxxxxxx',
 
     })
   }
 
 }
-
 
 
 //缁勪欢鎺ユ敹鍙傛暟
@@ -292,48 +292,141 @@
     showStatus: true
   },
   columns: [
+    {type: 'expand', title: '', fixed: "left", slots: {content: 'content'}, width: 50},//璇︽儏
     {title: '鎿嶄綔', width: '8%', slots: {default: 'button_slot'}, fixed: "left"},
+    {type: 'checkbox', fixed: "left", title: '', width: 50},
     {type: 'seq', fixed: "left", title: ' ', width: 50},
-    { type: 'checkbox',fixed:"left", title: '', width: 50 },
-    {type: 'expand', title:'璇︽儏', fixed: "left", slots: {content: 'content'}, width: 50},
-    {field: 'rkdh', width: '10%', title: '鍏ュ簱鍗曞彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgdh', width: '10%', title: '閲囪喘鍗曞彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+
+
+    {
+      field: 'rkdh',
+      width: '10%',
+      title: '鍏ュ簱鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'cgdh',
+      width: '10%',
+      title: '閲囪喘鍗曞彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {field: 'cgzt', width: '10%', title: '鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'gys', width: '10%',title: '渚涘簲鍟�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlbh', width: '10%',title: '鐗╂枡缂栧彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'wlmc', width: '10%', title: '鐗╂枡鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'w', width: '8%',title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'g', width: '8%',title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'h', width: '8%',title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xh', width: '8%',title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'dw', width: '8%',title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '12%',title: '涓嶅惈绋庡崟浠�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '12%',title: '宸查噰璐暟閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '8%',title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'je', width: '12%',title: '涓嶅惈绋庨噾棰�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '8%',title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'sl', width: '8%',title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'yl', width: '10%',title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'cgzt', width: '10%',title: '鍗曟嵁鐘舵��', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'xsdh', width: '10%',title: '閿�鍞崟鍙�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: 'rq', width: '10%',title: '鍒跺崟鏃ユ湡', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'gys',
+      width: '10%',
+      title: '渚涘簲鍟�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlbh',
+      width: '10%',
+      title: '鐗╂枡缂栧彿',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'wlmc',
+      width: '10%',
+      title: '鐗╂枡鍚嶇О',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'w', width: '8%', title: '瀹藉害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'g', width: '8%', title: '楂樺害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'h', width: '8%', title: '鍘氬害', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'xh', width: '8%', title: '鍨嬪彿', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'dw', width: '8%', title: '鍗曚綅', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: '6',
+      width: '12%',
+      title: '涓嶅惈绋庡崟浠�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'sl', width: '8%', title: '鏁伴噺', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'sl',
+      width: '12%',
+      title: '宸查噰璐暟閲�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: 'je', width: '8%', title: '閲戦', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'je',
+      width: '12%',
+      title: '涓嶅惈绋庨噾棰�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '6', width: '8%', title: '绋庣巼', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'sl', width: '8%', title: '搴撳瓨', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鍛ㄧ敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'yl', width: '10%', title: '鏈堢敤閲�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {
+      field: 'cgzt',
+      width: '10%',
+      title: '鍗曟嵁鐘舵��',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'xsdh',
+      width: '10%',
+      title: '閿�鍞崟鍙�',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: 'rq',
+      width: '10%',
+      title: '鍒跺崟鏃ユ湡',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
     {field: '6', width: '10%', title: '鍒跺崟浜�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '閲囪喘閮ㄩ棬', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '閲囪喘缁勭粐', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
-    {field: '6', width: '10%',title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
+    {
+      field: '6',
+      width: '10%',
+      title: '閲囪喘閮ㄩ棬',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {
+      field: '7',
+      width: '10%',
+      title: '閲囪喘缁勭粐',
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'},
+      sortable: true
+    },
+    {field: '8', width: '10%', title: '澶囨敞', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}
   ],//琛ㄥご鍙傛暟
   toolbarConfig: {
-    buttons: [{type:'text'/*,name:'璁㈠崟鍏ュ簱'*/},{
+    buttons: [{type: 'text'/*,name:'璁㈠崟鍏ュ簱'*/}, {
       'name': '鍏ュ簱璁板綍',
 
-      'code':'Log'
+      'code': 'Log'
     },
       {
         'name': '纭鍏ュ簱',
-        status:'primary',
-        'code':'Sure'
+        status: 'primary',
+        'code': 'Sure'
       }],
     import: false,
     export: true,
@@ -362,70 +455,56 @@
 
 })
 
-const showCGDH = ref();
+
 
 //璇︽儏妗� 閮ㄥ垎2
-const showDetails =ref(false);
-let detailData =[];
+const showCGDH = ref();
+const showDetails = ref(false);
+let detailData = [];
 const cellClickEvent = ({row}) => {
- detailData = ['cgdh', 'rkdh', 'h', 'xh', 'wlbh', 'wlmc', 'gys','w','g','dw','cgzt','rq','yl','sl','xsdh','je','6'].map(field => {
-    return { label: ModelColumnContent(field) , value: row[field] }
- })
+  if(isQueryColumnId===false){
+    queryColumnId();
+  }
+
+  detailData = list.map(field => {
+    return {label: queryColumnsTitle(field), value: row[field]}
+  })
 
   showDetails.value = true;
   showCGDH.value = row['cgdh'];
 }
 
-const ModelColumnContent = (text) => {
-  switch (text) {
-    case 'cgdh':
-      return "閲囪喘鍗曞彿";
-    case 'rkdh':
-      return "鍏ュ簱鍗曞彿";
-    case 'h':
-      return "鍘�";
-    case 'xh':
-      return "鍨嬪彿";
-    case 'wlbh':
-      return "鐗╂枡缂栫爜";
-    case 'wlmc':
-      return "鐗╂枡鍚嶇О";
-    case 'gys':
-      return "渚涘簲鍟�";
-    case 'w':
-      return "瀹�";
-    case 'g':
-      return "楂�";
-    case 'dw':
-      return "鍗曚綅";
-    case 'cgzt':
-      return "閲囪喘鐘舵��";
-    case 'rq':
-      return "鏃ユ湡";
-    case 'yl':
-      return "浣欓噺";
-    case 'sl':
-      return "鏁伴噺";
-      case 'xsdh':
-      return "閿�鍞崟鍙�";
-    case 'je':
-      return "閲戦";
-    case '6':
-      return "鍏朵粬";
-
-    default:
-      return text;
-
+//鑾峰彇琛ㄥ垪
+let list = [];
+let columnIndex = 4;//鍒楁爣澶翠粠绗嚑鍒楀紑濮嬬殑
+let isQueryColumnId = false;
+const queryColumnId = () => {
+  while (columnIndex < gridOptions.columns.length) {
+    list.push(gridOptions.columns[columnIndex].field);
+    columnIndex++;
   }
+  isQueryColumnId = true;
+  return list;
+}
 
+//鑾峰彇琛ㄥ垪鍚�
+function queryColumnsTitle(cn) {
+  let i = 0;
+  while (i < gridOptions.columns.length + 1) {
+    if (gridOptions.columns[i].field === cn) {
+      return gridOptions.columns[i].title;
+    }
+    i++;
+  }
 }
 //璇︽儏妗� 閮ㄥ垎2 缁撴潫
 
-const SureStorage=()=>{
 
-  openAlert({type: 'alert', content: '纭鍏ュ簱鎴愬姛', status: 'success'})
+const SureStorage = () => {
+  MessageShow('纭鍏ュ簱鎴愬姛');
 
 }
+
 
 const now = new Date()
 
@@ -461,15 +540,65 @@
   },
 ]
 
+
+//椤甸潰閫昏緫浠g爜鎵ц
+function logicExecute(type) {
+  const $grid = xGrid.value
+  switch (type) {
+    case '鍏ュ簱':
+      //鍏ュ簱閫昏緫浠g爜TODO
+      MessageShow('鍏ュ簱鎴愬姛锛�', 'success');
+      break;
+    case '閫�璐�':
+      //閫�璐ч�昏緫浠g爜TODO
+      MessageShow('閫�璐ф垚鍔燂紒', 'success');
+      break;
+    default:
+      MessageShow('鏈煡鎿嶄綔锛�', 'error');
+      break;
+  }
+  return true;
+}
+
+//鎻愮ず淇℃伅
+const MessageShow = (content, type = 'success') => {
+  ElMessage({
+    message: content,
+    type: type,
+    showClose: true,
+  })
+}
+
+//鎿嶄綔纭绫讳俊鎭細鎿嶄綔绫诲瀷锛屾彁绀哄唴瀹癸紝鎻愮ず鏍囧ご锛屾彁绀虹被鍨�
+const MessageConfirmShow = (czType, content, title = '鎿嶄綔纭鎻愮ず', type = 'warning') => {
+  ElMessageBox.confirm(
+      content,
+      title,
+      {
+        cancelButtonText: '鍙栨秷',
+        confirmButtonText: '纭畾',
+        type: type,
+        center: true,
+      }
+  )
+      //鐐瑰嚮浜嗙‘瀹�
+      .then(() => {
+        return logicExecute(czType);
+
+      })
+      //鐐瑰嚮浜嗗彇娑�
+      .catch(() => {
+        return false;
+      })
+}
+
 </script>
 
 
 <style scoped>
-:deep(.v-column-label div span){
+:deep(.v-column-label div span) {
   font-weight: bold;
 }
-
-
 
 
 </style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue b/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue
index 845b896..851d811 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue
@@ -10,11 +10,11 @@
                               :to="{path:'/main/stockReport/StockWarehouseReport'}">鎴愬搧鎶ヨ〃
           </el-breadcrumb-item>
           <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''"
-                              :to="{path:'/main/stockReport/StockMonthReport'}">鍘熺墖鏈堢粨
+                              :to="{path:'/main/stockReport/StockMonthReport'}">鍘熺墖鏈堢粨鎶ヨ〃
           </el-breadcrumb-item>
           <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''"
                               :to="{path:'/main/stockReport/SubsidiaryMonthReport'}">
-            杈呮枡鏈堢粨
+            杈呮枡鏈堢粨鎶ヨ〃
           </el-breadcrumb-item>
           <el-breadcrumb-item style="display: none"></el-breadcrumb-item>
         </el-breadcrumb>

--
Gitblit v1.8.0