瀏覽代碼

试验编号修改

duy 2 月之前
父節點
當前提交
421ed12f20
共有 2 個文件被更改,包括 156 次插入49 次删除
  1. 49 0
      src/api/modules/basic/code.js
  2. 107 49
      src/views/tentative/basic/code.vue

+ 49 - 0
src/api/modules/basic/code.js

@@ -0,0 +1,49 @@
+import { HcApi } from '../../request/index'
+
+export default {
+
+    async save(form) {
+        return HcApi({
+            url: '/api/blade-business/trialnumberrule/save',
+            method: 'post',
+            data: form,
+        })
+    },
+    async getTrialNumberRule(form) {
+        return HcApi({
+            url: '/api/blade-business/trialnumberrule/getTrialNumberRule',
+            method: 'get',
+            params: form,
+        })
+    },
+    //删除
+    async remove(form) {
+        return HcApi({
+            url: '/api//blade-business/trialnumberrule/remove',
+            method: 'post',
+            params: form,
+        })
+    },
+    async getTrialNumber(form) {
+        return HcApi({
+            url: '/api/blade-business/trialnumberrule/getTrialNumber',
+            method: 'get',
+            params: form,
+        })
+    },
+    async reTrialNumberRule(form) {
+        return HcApi({
+            url: '/api/blade-business/trialnumberrule/reTrialNumberRule',
+            method: 'get',
+            params: form,
+        })
+    },
+    
+    async getEntrustNumber(form) {
+        return HcApi({
+            url: '/api/blade-business/trialnumberrule/getEntrustNumber',
+            method: 'get',
+            params: form,
+        })
+    },
+}

+ 107 - 49
src/views/tentative/basic/code.vue

@@ -35,13 +35,15 @@
                     <el-button
                         hc-btn
                         color="#e03997" style="color: white;" 
+                        :loading="resetLoad"
+                        @click="resetModalClick"
                     >
                         <HcIcon name="restart" />
                         <span>重置编号</span>
                     </el-button>
                 </HcTooltip>
                 <HcTooltip keys="tentative-basic-code-delete">
-                    <el-button hc-btn color="red">
+                    <el-button hc-btn color="red" :loading="delModalLoad" @click="delModalClick">
                         <HcIcon name="delete-bin-2" />
                         <span>删除</span>
                     </el-button>
@@ -55,20 +57,22 @@
                 @selection-change="tableSelection"
             >
                 <template #type="{ row }">
-                    <el-select v-model="row.type" placeholder="请选择">
+                    <el-select v-if="row.isEdit" v-model="row.type" placeholder="请选择">
                         <el-option
-                            v-for="item in menuOptions"
+                            v-for="item in typeOptions"
                             :key="item.key"
                             :label="item.label"
                             :value="item.key"
                         />
                     </el-select>
+                    <span v-else>{{ getTypeLabel(row.type) }}</span>
                 </template>
                 <template #data="{ row }">
-                    <el-input v-model="row.data" placeholder="请输入数据" />
+                    <el-input v-if="row.isEdit" v-model="row.data" placeholder="请输入数据" />
+                    <span v-else>{{ row.data }}</span>
                 </template>
                 <template #isAutoIncrement="{ row }">
-                    <el-checkbox v-model="row.isAutoIncrement">是否自增</el-checkbox>
+                    <el-checkbox v-if="row?.type === '6'" v-model="row.isAutoIncrement" :disabled="!row.isEdit">是否自增</el-checkbox>
                 </template>
                 <template #action="{ row }">
                     <el-button 
@@ -84,25 +88,23 @@
                         v-if="row.isEdit"
                         type="success" 
                         link
-                        @click="handleSave(row)"
+                        :loading="row.saveLoading"
+                        @click="handleSave(row)" 
                     >
                         <HcIcon name="save-3" />
                         保存
                     </el-button>
                     <el-button 
-                        type="danger" 
+                        v-del-com:[handleDelete]="row" 
+                        type="danger"
+            
                         link
-                        @click="handleDelete(row)"
                     >
                         <HcIcon name="delete-bin-2" />
                         删除
                     </el-button>
                 </template>
             </HcTable>
-
-            <template #action>
-                <HcPages :pages="searchForm" @change="pageChange" />
-            </template>
         </hc-card>
     </hc-body>
 </template>
@@ -110,15 +112,28 @@
 <script setup>
 import { onMounted, ref } from 'vue'
 import { getDictionary } from '~api/other'
-import { getArrValue } from 'js-fast-way'
-
+import { arrToId, getArrValue } from 'js-fast-way'
+import dataApi from '~api/basic/code'
+import { useAppStore } from '~src/store'
+import { HcDelMsg } from 'hc-vue3-ui'
+const store = useAppStore()
+const projectId = ref(store.getProjectId)
+const contractId = ref(store.getContractId)
 onMounted(()=>{
-    getMenuOptions()
+    getTypeOptions()
+    getTableData()
 })
 //左侧菜单
 const menuKey = ref('1')
-const menuOptions = ref([])
-const getMenuOptions = async ()=>{
+const menuOptions = ref([
+    { key: '1', label: '材料编号' },
+    { key: '2', label: '样品编号' },
+    { key: '3', label: '委托单编号' },
+    { key: '4', label: '记录表编号' },
+    { key: '5', label: '报告表编号' },
+])
+const typeOptions = ref([])
+const getTypeOptions = async ()=>{
         const { data } = await getDictionary({
         code: 'trial_number_rule',
     })
@@ -131,24 +146,19 @@ const getMenuOptions = async ()=>{
             key: newData[i]['dictKey'],
         })
     }
-    menuOptions.value = newArr
+    typeOptions.value = newArr
+}
+// 查找typeOptions中对应的label
+const getTypeLabel = (typeKey) => {
+    return typeOptions.value.find(item => item.key === typeKey)?.label || '未知类型'
 }
 const handleMenuValue = (item) => {
-    console.log(item)
+
     menuKey.value = item.key
 }
-//搜索表单
-const searchForm = ref({
- 
-    current: 1, size: 20, total: 0,
-})
 
-//分页被点击
-const pageChange = ({ current, size }) => {
-    searchForm.value.current = current
-    searchForm.value.size = size
-    getTableData()
-}
+
+
 //获取数据
 const tableLoad = ref(true)
 const tableData = ref([])
@@ -161,21 +171,21 @@ const tableColumn = ref([
    
 ])
 const getTableData = async () => {
-    // tableLoad.value = true
-    // const { error, code, data } = await approachApi.queryPage({
-    //     projectId: projectId.value,
-    //     contractId: contractId.value,
-    //     ...searchForm.value,
-    // })
-    // //处理数据
-    // tableLoad.value = false
-    // if (!error && code === 200) {
-    //     tableData.value = getArrValue(data['records'])
-    //     searchForm.value.total = data.total || 0
-    // } else {
-    //     tableData.value = []
-    //     searchForm.value.total = 0
-    // }
+    tableLoad.value = true
+    const { error, code, data } = await dataApi.getTrialNumberRule({
+        projectId: projectId.value,
+        contractId: contractId.value,
+       type: menuKey.value,
+    })
+    //处理数据
+    tableLoad.value = false
+    if (!error && code === 200) {
+        tableData.value = getArrValue(data['records'])
+      
+    } else {
+        tableData.value = []
+      
+    }
 }
 
 //多选
@@ -187,19 +197,67 @@ const tableSelection = (rows) => {
 const handleEdit = (row) => {
     row.isEdit = true
 }
+const saveLoading = ref(false)
 
 // 保存行
 const handleSave = async (row) => {
-    row.isEdit = false
+        saveLoading.value = true
+    const { error, code, msg } = await dataApi.save({
+      ...row,
+        projectId: projectId.value,
+        contractId: contractId.value,
+    })
+    //处理数据
+    saveLoading.value = false
+    if (!error && code === 200) {
+        window?.$message?.success(msg)
+        row.isEdit = false
+     
+    
+     getTableData()
+      
+    } 
 }
 
-// 删除行
-const handleDelete = async (row) => {
-    console.log(row)
+
+const handleDelete = async ({ item }, resolve) => {
+    await delData(item.id)
+    resolve()
+}
+//删除请求
+const delData = async (id) => {
+    const { error, code, msg } = await dataApi.delData({
+        contractId: contractId.value,
+        pkeyId: id,
+       
+    }, false)
+    //判断状态
+    if (!error && code === 200) {
+        window?.$message?.success(msg)
+        getTableData()
+    } else {
+        window?.$message?.error(msg)
+    }
+}
+//删除节点
+const delModalLoad = ref(false)
+const delModalClick = () => {
+    delModalLoad.value = true
+     const rows = tableCheckedKeys.value
+    const ids = arrToId(rows)
+    HcDelMsg(async (resolve) => {
+        await delData(ids)
+         delModalLoad.value = false
+        resolve() //关闭弹窗的回调
+    })
 }
 const handleAdd = () => {
     tableData.value.push({
         isEdit: true,
     })
 }
+const resetLoad = ref(false)
+const resetModalClick = () => {
+    getTableData()
+}
 </script>