From acaf8ca38cd32bc474bb46b593db2a8d75b9bfdd Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期六, 12 十月 2024 08:26:23 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/pp/machine/AddMachine.vue |  289 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 202 insertions(+), 87 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/machine/AddMachine.vue b/north-glass-erp/northglass-erp/src/views/pp/machine/AddMachine.vue
index e8a8f01..8311031 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/machine/AddMachine.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/machine/AddMachine.vue
@@ -1,105 +1,220 @@
-<script lang="ts" setup>
-import {reactive, ref} from 'vue'
-import {Search} from "@element-plus/icons-vue"
-import {useRouter} from "vue-router"
-const router = useRouter()
-// do not use same name with ref
-const value = ref('')
-const options = [
-  {
-    value: 'Option1',
-    label: 'Option1',
-  },
-  {
-    value: 'Option2',
-    label: 'Option2',
-  },
-  {
-    value: 'Option3',
-    label: 'Option3',
-  },
-]
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
+<script setup>
+
+import {computed, nextTick, onMounted, reactive, ref, toRefs} from "vue";
+import {useRouter, useRoute} from 'vue-router'
+import request from "@/utils/request";
+import {ElMessage} from "element-plus";
+import {changeFilterEvent, filterChanged} from "@/hook"
+import userInfo from "@/stores/userInfo"
+import {useI18n} from 'vue-i18n'
+import {addListener, toolbarButtonClickEvent} from "@/hook/mouseMove";
+//璇█鑾峰彇
+const {t} = useI18n()
+const route = useRoute()
+const user = userInfo()
+let router = useRouter()
+
+//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
+const titleSelectJson = ref({
+  processType: [],
+
+})
+//绗竴娆″姞杞芥暟鎹�
+request.post(`/basicDataProduce/selectProcess`).then((res) => {
+  if (res.code == 200) {
+
+    titleSelectJson.value.processType = res.data.process;
+  } else {
+    ElMessage.warning(res.msg)
+  }
+})
+
+onMounted(() => {
+  //鍚敤琛ㄦ牸鎷栧姩閫変腑
+  addListener(xGrid.value, gridOptions)
 })
 
 
-const tableData = [
-  {
-    1: '',
-    2: '',
-    3: '',
-    4: '',
-    5:'',
-    6:'',
-
+//瀛愮粍浠舵帴鏀跺弬鏁�
+const xGrid = ref()
+const gridOptions = reactive({
+  border: "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
   },
-  {
-    1: '',
-    2: '',
-    3: '',
-    4: '',
-    5:'',
-    6:'',
-
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
   },
-  {
-    1: '',
-    2: '',
-    3: '',
-    4: '',
-    5:'',
-    6:'',
-
+  customConfig: {
+    storage: true
   },
-]
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },//琛ㄥご鍙傛暟
+  columns: [
+    {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
+    {
+      field: 'basicName',
+      title: t('machine.basicName'),
+      width: 500,
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+    },
+
+    {
+      field: 'basicCategory',
+      title: t('machine.basicCategory'),
+      width: 500,
+      editRender: {},
+      slots: {default: 'basicCategory_default', edit: 'basicCategory'}
+    },
+  ],
+  //琛ㄥご鎸夐挳
+  toolbarConfig: {
+    buttons: [
+      {code: 'removeRow', name: t('basicData.delete'), status: 'primary', icon: 'vxe-icon-delete'},
+      {code: 'addRow', name: t('reportingWorks.increase'), status: 'primary', icon: 'vxe-icon-square-plus'},
+      {code: 'save', name: t('basicData.save'), status: 'primary', icon: 'vxe-icon-save'},
+    ],
+    // import: false,
+    // export: true,
+    // print: true,
+    zoom: true,
+    custom: true
+  },
+  data: [],//table body瀹為檯鏁版嵁
+  //鑴氶儴姹傚拰
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    let footList = ['', '']
+    return [
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return ''
+        }
+        if (footList.includes(column.field)) {
+          return sumNum(data, column.field)
+        }
+        return ''
+      })
+    ]
+  }
+
+})
+
+const teamGridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'addRow': {
+          $grid.insertAt({})
+          break
+        }
+
+        case 'removeRow': {
+          let result = toolbarButtonClickEvent()
+          if (result) {
+            $grid.remove(result.row)
+          }
+          break
+        }
+        case 'save': {
+          const tableData = $grid.getTableData().fullData
+          //console.log(tableData)
+          let machineData = ref({
+            machine: tableData
+          })
+          request.post("/maintenance/saveMachine", machineData.value).then((res) => {
+            if (res.code == 200) {
+              ElMessage.success(t('basicData.msg.saveSuccess'))
+              //router.push('/main/processCard/SplittingDetails?orderId=${orderId}')
+              router.push({
+                path: '/main/machine/AddMachine',
+                query: {random: Math.random()}
+              })
+
+              //location.reload();
+            } else {
+              ElMessage.warning(res.msg)
+            }
+          })
+          break
+        }
+      }
+    }
+  }
+}
+
+const size = ref<'default' | 'large' | 'small'>('default')
+
+const value1 = ref('')
+
+
 </script>
 
 <template>
-  <div>
-    <div id="selectForm">
-      <el-row :gutter="0">
+  <div class="main-div-customer">
+    <vxe-grid
+        ref="xGrid"
+        class="mytable-scrollbar"
+        height="650px"
+        max-height="100%"
+        v-bind="gridOptions"
+        v-on="teamGridEvents"
 
-        <el-button type="primary">淇濆瓨</el-button>
-      </el-row>
+    >
 
-    </div>
-    <el-table :data="tableData" border style="width: 100%" height="100%">
-      <el-table-column prop="1" label="鏍囧噯鍚嶇О" >
-        <el-input></el-input>
-      </el-table-column>
-      <el-table-column prop="2" label="璁惧鍚嶇О" >
-      <el-input></el-input>
-      </el-table-column>
-      <el-table-column prop="3" label="璐拱鏃堕棿" >
-      <el-input></el-input>
-      </el-table-column>
-      <el-table-column prop="4" label="瀹夎鏃堕棿">
-      <el-input></el-input>
-      </el-table-column>
-      <el-table-column prop="5" label="淇濆吇鍛ㄦ湡"  >
-      <el-input></el-input>
-      </el-table-column>
-      <el-table-column prop="6" label="鎵�鍦ㄥ伐鑹�" >
-      <el-input></el-input>
-      </el-table-column>
-    </el-table><!-- <h1>{{msg}}</h1> -->
+      <template #num1_filter="{ column, $panel }">
+        <div>
+          <div v-for="(option, index) in column.filters" :key="index">
+            <input v-model="option.data" type="text" @input="changeFilterEvent($event, option, $panel)"/>
+          </div>
+        </div>
+      </template>
+      <!--宸ュ簭-->
+      <template #basicCategory="{ row }">
+        <vxe-select v-model="row.basicCategory"
+                    clearable
+                    filterable
+                    placeholder="">
+          <vxe-option v-for="item in titleSelectJson.processType"
+                      :key="item.basic_name"
+                      :label="item.basic_name"
+                      :value="item.basic_name"/>
+        </vxe-select>
+      </template>
+      <template #basicCategory_default="{ row }">
+        <span>{{ row.basicCategory }}</span>
+      </template>
+    </vxe-grid>
+
   </div>
 </template>
 
 <style scoped>
-#selectForm {
-  float: right;
+.main-div-customer {
+  width: 80%;
+  margin:  0 auto;
   height: 100%;
-  text-align: center;
 }
-
-
+.vxe-grid {
+  /* 绂佺敤娴忚鍣ㄩ粯璁ら�変腑 */
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0