From 2f853b74d6b37d0bb2e3301f7417c5f90e307c0b Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 02 四月 2024 16:20:49 +0800
Subject: [PATCH] 设备管理新增,维修保养新增查询

---
 north-glass-erp/northglass-erp/src/views/pp/machine/AddMachine.vue |  271 +++++++++++++++++++++++++++--------------------------
 1 files changed, 139 insertions(+), 132 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 a1aa829..eb54c7a 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,50 +1,55 @@
 <script setup>
 
-import {reactive, ref} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
-  switch (type) {
-    case 'edit' :{
-      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }})
-      break
-    }
-    case 'delete':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
-      break
-    }
-    case  'setType':{
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍙嶅鐘舵��')
-      break
-    }
-  }
-}
+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 sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
-}
+//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
+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 xGrid = ref()
 const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  border: "full",//琛ㄦ牸鍔犺竟妗�
   keepSource: true,//淇濇寔婧愭暟鎹�
   align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
   id: 'CustomerList',
   showFooter: true,//鏄剧ず鑴�
   printConfig: {},
   importConfig: {},
   exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
+  scrollY: {enabled: true},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
   columnConfig: {
     resizable: true,
     useKey: true
@@ -60,78 +65,41 @@
     mode: 'row',
     showStatus: true
   },//琛ㄥご鍙傛暟
-  columns:[
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
+  columns: [
+    {type: 'seq', fixed: "left", title: '鑷簭', width: 50},
+    {
+      field: 'basicName',
+      title: '璁惧鍚嶇О',
+      width: 500,
+      editRender: {name: 'input', attrs: {placeholder: ''}},
+    },
 
-    {field: 'standardName', title: '鏍囧噯鍚嶇О',editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'deviceName', title: '璁惧鍚嶇О',editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'buyingTime', title: '璐拱鏃堕棿',editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'installationTime',title: '瀹夎鏃堕棿',editRender: { name: 'input', attrs: { placeholder: '' } } },
-    {field: 'serviceInterval', title: '淇濆吇鍛ㄦ湡',editRender: { name: 'input', attrs: { placeholder: '' } }},
-    {field: 'process', title: '鎵�鍦ㄥ伐鑹�', editRender: { name: 'input', attrs: { placeholder: '' } }},
+    {
+      field: 'basicCategory',
+      title: '鎵�鍦ㄥ伐搴�',
+      width: 500,
+      editRender: {},
+      slots: {default: 'basicCategory_default', edit: 'basicCategory'}
+    },
   ],
   //琛ㄥご鎸夐挳
   toolbarConfig: {
     buttons: [
-      {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'},
+      {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: '淇濆瓨', status: 'primary', icon: 'vxe-icon-save'},
     ],
-    import: false,
-    export: true,
-    print: true,
+    // import: false,
+    // export: true,
+    // print: true,
     zoom: true,
     custom: true
   },
-  data:  [
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-    {
-      standardName: '',
-      deviceName: '',
-      buyingTime: '',
-      installationTime: '',
-      serviceInterval:'',
-      process:'',
-
-    },
-  ],//table body瀹為檯鏁版嵁
+  data: [],//table body瀹為檯鏁版嵁
   //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['maintenanceFrequency','MaintenancesFrequency']
-    return[
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    let footList = ['', '']
+    return [
       columns.map((column, columnIndex) => {
         if (columnIndex === 0) {
           return '鍚堣:'
@@ -146,69 +114,108 @@
 
 })
 
+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("淇濆瓨鎴愬姛")
+              //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('')
-const dialogFormVisible = ref(false)
-const formLabelWidth = '140px'
 
-const form = reactive({
-  name: '',
-  region: '',
-  date1: '',
-  date2: '',
-  delivery: false,
-  type: [],
-  resource: '',
-  desc: '',
-})
 
 </script>
 
 <template>
   <div class="main-div-customer">
     <vxe-grid
-        max-height="100%"
-        @filter-change="filterChanged"
-        class="mytable-scrollbar"
         ref="xGrid"
+        class="mytable-scrollbar"
+        height="650px"
+        max-height="100%"
         v-bind="gridOptions"
+        v-on="teamGridEvents"
+        @filter-change="filterChanged"
 
     >
-      <!--      @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>
-
-      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
-      <template #button_slot="{ row }">
-        <el-button @click="dialogFormVisible = true" link type="primary" size="small">缂栬緫</el-button>
-        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
-      </template>
 
       <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)"/>
+            <input v-model="option.data" type="type" @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>
-.main-div-customer{
-  width: 99%;
+.main-div-customer {
+  width: 80%;
+  margin:  0 auto;
   height: 100%;
 }
+.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