Browse Source

Signed-off-by: liuboyan <632697560@qq.com>
bug

liuboyan 4 years ago
parent
commit
ccf99e0e18

+ 1 - 1
index.html

@@ -4,7 +4,7 @@
     <meta charset="UTF-8" />
     <link rel="icon" href="/favicon.ico" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>西软客房系统</title>
+    <title>客房维保系统</title>
   </head>
   <body>
     <div id="app"></div>

+ 20 - 1
src/api/device.js

@@ -60,7 +60,7 @@ export function submitLevelAddFormOfDeviceType (object) {
 //  设备类型--提交编辑级别表单
 export function submitLevelEditFormOfDeviceType (object) {
     return request({
-        url: '/device/deviceLevel/editDeviceLevel',
+        url: '/device/deviceLevel/editDeviceLevelAndChildren',
         method: 'post',
         data: object,
         type: 'JSON'
@@ -75,6 +75,15 @@ export function submitDeleteLevelFormOfDeviceType (object) {
         type: 'JSON'
     })
 }
+//  设备类型--获取级别详情
+export function getLevelDetailDataOfDeviceType (object) {
+    return request({
+        url: `/device/deviceLevel/byId`,
+        method: 'get',
+        params: object,
+        type: 'JSON'
+    })
+}
 
 /***** 标准设置 *****/
 
@@ -273,6 +282,16 @@ export function submitDeleteStepFormOfRoute (object) {
         type: 'JSON'
     })
 }
+//  工艺路线--导出批量导入模板
+export function downloadBatchImportMouldOfRoute (object) {
+    return download({
+        url: `/device/deviceCraft/downloadTemplate`,
+        method: 'get',
+        params: object,
+        type: 'JSON'
+    })
+}
+
 
 /***** 设备列表 *****/
 

+ 5 - 0
src/assets/css/public.scss

@@ -46,6 +46,11 @@
     margin-bottom: 0;
     padding-bottom: 20px;
   }
+  .el-dialog__title{
+    font-size: 15px;
+    font-weight: bold;
+    color: #303133;
+  }
   .drawer-body{
     height: calc(100vh - 122px);
     padding: 10px 10px;

+ 1 - 1
src/components/menuAside/index.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="aside-container">
-        <div class="aside-title">西软客房系统</div>
+        <div class="aside-title">客房维保系统</div>
         <div class="aside-menu">
             <el-menu
                     :default-active="menuState.activeMenu"

+ 82 - 28
src/components/tree/deviceTree.vue

@@ -13,13 +13,13 @@
                 <span class="tree-label">{{data.title}}</span>
                 <span>
                     <i class="tree-icon el-icon-plus"
-                       v-if="handlePermit && ((checkMenuLimit('room/deviceType/System/Add') && node.level == 1) || (checkMenuLimit('room/deviceType/Level/Add') && node.level == 2))"
+                       v-if="handlePermit && ((checkMenuLimit('room/deviceType/System/Add') && node.level == 1) || (checkMenuLimit('room/deviceType/Level/Add') && node.level >= 2))"
                        @click="handleNodeAdd(node, data)"></i>
                     <i class="tree-icon el-icon-edit-outline"
-                       v-if="handlePermit && ((checkMenuLimit('room/deviceType/System/Edit') && node.level == 2) || (checkMenuLimit('room/deviceType/Level/Edit') && node.level == 3))"
+                       v-if="handlePermit && ((checkMenuLimit('room/deviceType/System/Edit') && node.level == 2) || (checkMenuLimit('room/deviceType/Level/Edit') && node.level >= 3))"
                        @click="handleNodeEdit(node, data)"></i>
                     <i class="tree-icon el-icon-delete"
-                       v-if="handlePermit && ((checkMenuLimit('room/deviceType/System/Delete') && node.level == 2) || (checkMenuLimit('room/deviceType/Level/Delete') && node.level == 3))"
+                       v-if="handlePermit && ((checkMenuLimit('room/deviceType/System/Delete') && node.level == 2) || (checkMenuLimit('room/deviceType/Level/Delete') && node.level >= 3))"
                        @click="handleNodeDel(node, data)"></i>
                 </span>
             </span>
@@ -116,7 +116,15 @@
                     </el-form-item>
                 </el-col>
             </el-row>
-            <el-row>
+            <el-row v-if="formData.levelFormType == 'add' ? (selectTreeNode.node && selectTreeNode.node.level > 2) : (selectTreeNode.node && selectTreeNode.node.level > 3) || selectTreeNode.independent">
+                <el-col :span="12">
+                    <el-form-item label="上级名称" prop="parentName">{{formData.levelForm.parentName}}</el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="上级编码" prop="parentCode">{{formData.levelForm.parentCode}}</el-form-item>
+                </el-col>
+            </el-row>
+            <el-row v-if="formData.levelFormType == 'add' ? (selectTreeNode.node && selectTreeNode.node.level == 2) : (selectTreeNode.node && selectTreeNode.node.level == 3 && !selectTreeNode.independent)">
                 <el-col :span="24">
                     <el-form-item label="关联业态" prop="format">
                         <el-checkbox-group v-model="formData.levelForm.format">
@@ -131,16 +139,16 @@
                     </el-form-item>
                 </el-col>
             </el-row>
-            <el-row>
+            <el-row v-if="formData.levelFormType == 'add' ? (selectTreeNode.node && selectTreeNode.node.level == 2) : (selectTreeNode.node && selectTreeNode.node.level == 3 && !selectTreeNode.independent)">
                 <el-col :span="24">
                     <el-form-item label="关联系统" prop="sysIds">
                         <el-checkbox-group v-model="formData.levelForm.sysIds">
                             <el-checkbox
-                                    :label="item.id"
+                                    :label="item.value"
                                     v-for="(item, index) in dictionaryData.sysList"
                                     :key="index"
-                                    :disabled="dictionaryData.sysDisabledList.filter(site=> site == item.id).length > 0">
-                                {{item.title}}
+                                    :disabled="dictionaryData.sysDisabledList.filter(site=> site == item.value).length > 0">
+                                {{item.label}}
                             </el-checkbox>
                         </el-checkbox-group>
                     </el-form-item>
@@ -167,6 +175,7 @@
     import {
         getCurrencyDictionary,
         getSystemTreeDictionary,
+        getSystemDictionary,
         getLevelDictionary,
     } from 'api/dictionary'
     import {
@@ -211,6 +220,22 @@
                     });
                 }
             })
+            //  获取系统字典参数
+            function refreshSystemDictionary(){
+                getSystemDictionary({
+                    companyId: getStore({name: 'companyIdJH'}),
+                }).then(res => {
+                    if (res.status == 200) {
+                        dictionaryData.sysList = res.data
+                    } else {
+                        ElNotification({
+                            title: '获取系统失败',
+                            message: res.message,
+                            type: 'error'
+                        });
+                    }
+                })
+            }
             //  获取级别等级字典参数
             getCurrencyDictionary({
                 dictCode: 'levelRank',
@@ -225,6 +250,7 @@
                     });
                 }
             })
+            refreshSystemDictionary()
             //  表单参数
             let sysFormRef = ref(null)
             let levelFormRef = ref(null)
@@ -260,6 +286,9 @@
                     maintainHour: 0,
                     format: [],
                     sysIds: [],
+                    parentId: '',
+                    parentCode: '',
+                    parentName: ''
                 },
                 levelFormRules: {
                     levelName: [
@@ -303,11 +332,12 @@
             let {
                 submitSysForm,
                 submitLevelForm,
-            } = formModule(refreshNode, selectTreeNode, formData, sysFormRef, levelFormRef, context);
+            } = formModule(refreshNode, selectTreeNode, formData, sysFormRef, levelFormRef, refreshSystemDictionary, context);
             //  暴露
             return {
                 checkMenuLimit,
                 treeData,
+                selectTreeNode,
                 loadNode,
                 handleNodeAdd,
                 handleNodeEdit,
@@ -323,7 +353,7 @@
         }
     }
     //  表单模块
-    function formModule(refreshNode, selectTreeNode, formData, sysFormRef, levelFormRef, context){
+    function formModule(refreshNode, selectTreeNode, formData, sysFormRef, levelFormRef, refreshSystemDictionary, context){
         //  提交系统表单
         function submitSysForm () {
             sysFormRef.value.validate((valid) => {
@@ -344,6 +374,7 @@
                                     message: res.message,
                                     type: 'success'
                                 });
+                                refreshSystemDictionary()
                             } else {
                                 ElNotification({
                                     title: '请求出错',
@@ -375,7 +406,7 @@
                         }).then(res => {
                             if (res.status == 200) {
                                 formData.levelFormShow = false
-                                refreshNode(formData.levelFormType == 'add' ? selectTreeNode.node : selectTreeNode.node.parent)
+                                refreshNode(formData.levelFormType == 'add' || selectTreeNode.independent ? selectTreeNode.node : selectTreeNode.node.parent)
                                 ElNotification({
                                     title: formData.levelFormType == 'add' ? '新增成功' : '编辑成功',
                                     message: res.message,
@@ -447,7 +478,8 @@
         })
         //  树形结构选择节点参数
         let selectTreeNode = reactive({
-            node: null
+            node: null,
+            independent: false,
         })
         //  树形结构数据懒加载
         function loadNode(node, resolve, type) {
@@ -495,11 +527,12 @@
                 getLevelDictionary({
                     treeType: 2,
                     companyId: getStore({name: 'companyIdJH'}),
+                    parentId: node.level == 2 ? '' : node.data.id,
                     checkFormat: node.data.checkFormat,
                     checkSystem: node.data.sysId,
                 }).then(res => {
                     if (res.status == 200) {
-                        res.data.forEach(item => { item.isLeaf = true })
+                        // res.data.forEach(item => { item.isLeaf = true })
                         if (type == 1) {
                             return resolve(res.data)
                         } else if (type == 2) {
@@ -544,19 +577,40 @@
                 formData.levelFormType = 'add'
                 if (levelFormRef.value){
                     levelFormRef.value.resetFields()
+                    formData.levelForm = {
+                        levelId: '',
+                        levelName: '',
+                        dlevelCode: '',
+                        levelType: '',
+                        rank: '',
+                        patrolHour: 0,
+                        maintainHour: 0,
+                        format: [],
+                        sysIds: [],
+                        parentId: '',
+                        parentCode: '',
+                        parentName: ''
+                    }
                 }
                 formData.levelForm.format = data.format
-                dictionaryData.formatDisabledList = data.format
-                dictionaryData.sysList = node.parent.childNodes.map(item=>{
-                    return item.data
-                })
-                dictionaryData.sysDisabledList = []
+                if (node.level == 2){
+                    formData.levelForm.sysIds = [data.sysId]
+                    dictionaryData.formatDisabledList = data.format
+                    dictionaryData.sysDisabledList = [data.sysId]
+                }
+                if (node.level > 2){
+                    formData.levelForm.parentId = data.id
+                    formData.levelForm.parentCode = data.dlevelCode
+                    formData.levelForm.parentName = data.title
+                    formData.levelForm.sysIds = data.sysList
+                }
             }
         }
         //  树形结构节点编辑
-        function handleNodeEdit(node, data) {
+        function handleNodeEdit(node, data, independent) {
             selectTreeNode.node = node
-            if (node.level == 2){
+            selectTreeNode.independent = independent
+            if (node.level == 2 && !independent){
                 formData.sysFormShow = true
                 formData.sysFormType = 'edit'
                 if (sysFormRef.value){
@@ -573,7 +627,7 @@
                 formData.levelFormShow = true
                 formData.levelFormType = 'edit'
                 if (levelFormRef.value){
-                    levelFormRef.value.clearValidate()
+                    levelFormRef.value.resetFields()
                 }
                 formData.levelForm = {
                     levelId: data.id,
@@ -585,22 +639,22 @@
                     maintainHour: data.maintainHour,
                     format: data.format,
                     sysIds: data.sysList,
+                    parentId: independent ? data.parentId : (node.level > 3 ? node.parent.data.id : ''),
+                    parentCode: independent ? data.parentCode : (node.level > 3 ? node.parent.data.dlevelCode : ''),
+                    parentName: independent ? data.parentName : (node.level > 3 ? node.parent.data.title : ''),
                 }
                 dictionaryData.formatDisabledList = data.format
-                dictionaryData.sysList = node.parent.parent.childNodes.map(item=>{
-                    return item.data
-                })
                 dictionaryData.sysDisabledList = data.sysList
             }
         }
         //  树形结构节点删除
-        function handleNodeDel(node, data) {
+        function handleNodeDel(node, data, independent) {
             ElMessageBox.confirm('是否删除,删除后无法找回!', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
                 type: 'warning'
             }).then(() => {
-                if (node.level == 2){
+                if (node.level == 2 && !independent){
                     submitDeleteSystemFormOfDeviceType({
                         sysId: data.id,
                     }).then(res => {
@@ -618,7 +672,7 @@
                             });
                         }
                     })
-                } else if (node.level == 3){
+                } else if (node.level >= 3 || independent){
                     submitDeleteLevelFormOfDeviceType({
                         levelId: data.id,
                     }).then(res => {
@@ -627,7 +681,7 @@
                                 title: '删除成功',
                                 type: 'success'
                             });
-                            refreshNode(node.parent)
+                            refreshNode(independent ? node : node.parent)
                             context.emit('refreshTable');
                         } else {
                             ElNotification({

+ 1 - 5
src/components/tree/projectTree.vue

@@ -61,11 +61,7 @@
         //  树形结构数据懒加载
         function loadNode(node, resolve) {
             if (node.level === 0) {
-                getAreaDictionary({
-                    treeType: 0,
-                    id: getStore({name: 'companyIdJH'}),
-                    companyId: getStore({name: 'companyIdJH'})
-                }).then(res => {
+                getAreaDictionary({}).then(res => {
                     if (res.status == 200) {
                         return resolve(res.data)
                     } else {

+ 1 - 0
src/views/device/deviceList.vue

@@ -945,6 +945,7 @@
                         if (valid) {
                             submitAddFormOfDeviceList({
                                 ...formData.deviceAddForm,
+                                borrowableAsset: formData.deviceAddForm.borrowableAsset ? formData.deviceAddForm.borrowableAsset : null,
                                 levelList: tableData.levelTableList.filter(site => site.deviceLevelCount > 0).map(site => {
                                     return {
                                         levelId: site.levelId,

+ 27 - 6
src/views/device/deviceType.vue

@@ -16,7 +16,7 @@
                     <template #header>
                         <div class="card-header">
                             <span class="card-title">级别列表</span>
-                            <el-button size="mini" type="primary" @click="handleAdd" :disabled="!tableData.selectNode || tableData.selectNode.level != 2" v-if="checkMenuLimit('room/deviceType/Level/Add')">新增级别</el-button>
+                            <el-button size="mini" type="primary" @click="handleAdd" :disabled="!tableData.selectNode || tableData.selectNode.level < 2" v-if="checkMenuLimit('room/deviceType/Level/Add')">新增级别</el-button>
                         </div>
                     </template>
                     <div class="card-container">
@@ -53,6 +53,7 @@
     } from 'api/dictionary'
     import {
         getTableListOfDeviceType,
+        getLevelDetailDataOfDeviceType,
     } from 'api/device'
     import {ElNotification} from "element-plus";
 
@@ -146,16 +147,36 @@
                 deviceTreeRef.value.handleNodeAdd(tableData.selectNode, tableData.selectNode.data)
             }
             function handleEdit (index, data) {
-                let postNode = recursionNode(data)
-                deviceTreeRef.value.handleNodeEdit(postNode, postNode.data)
+                getLevelDetailDataOfDeviceType({
+                    levelId: data.levelId
+                }).then(res => {
+                    if (res.status == 200) {
+                        let postNode = recursionNode(data)
+                        deviceTreeRef.value.handleNodeEdit(postNode, {
+                            ...res.data,
+                            id: res.data.levelId,
+                            title: res.data.levelName,
+                            sysList: res.data.sysIds,
+                            format: res.data.format.split(',')
+                        }, data.parentId)
+                    } else {
+                        ElNotification({
+                            title: '获取级别详情失败',
+                            message: res.message,
+                            type: 'error'
+                        });
+                    }
+                })
             }
             function handleDelete (index, data) {
                 let postNode = recursionNode(data)
-                deviceTreeRef.value.handleNodeDel(postNode, postNode.data)
+                deviceTreeRef.value.handleNodeDel(postNode, {
+                    id: data.levelId
+                }, data.parentId)
             }
             function recursionNode (data) {
-                if(tableData.selectNode.level == 3 ){
-                    return  tableData.selectNode
+                if(tableData.selectNode.data.id == data.levelId || data.parentId){
+                    return tableData.selectNode
                 } else {
                     return tableData.selectNode.childNodes.find(site=>site.data.id == data.levelId)
                 }

+ 11 - 2
src/views/device/processRoute.vue

@@ -27,7 +27,9 @@
                         </el-form>
                         <el-table :data="tableData.treeTableList" v-loading="tableData.treeTableLoading" :height="props.resizeHeight - 252" stripe border fit @row-click="nodeClick">
                             <el-table-column prop="craftName" label="路线名称" minWidth="140" align="center"></el-table-column>
-                            <el-table-column prop="lpCategoryName" label="类别" width="80" align="center"></el-table-column>
+                            <el-table-column prop="lpCategoryName" label="类别" width="80" align="center">
+                                <template #default="scope">客房维保</template>
+                            </el-table-column>
                             <el-table-column prop="projectCatagory" label="业态" minWidth="80" align="center"></el-table-column>
                             <el-table-column label="操作" width="80" align="center" fixed="right" class-name="table-flex-column-right">
                                 <template #default="scope">
@@ -46,8 +48,9 @@
                             <span class="card-title">设备类型/标准内容</span>
                             <span style="display: flex;">
                                 <el-button size="mini" type="primary" @click="relationType" :disabled="!tableData.selectNode" v-if="checkMenuLimit('room/craft/level/Join')">关联类型</el-button>
+                                <el-button size="mini" type="primary" @click="downloadImportMould" v-if="checkMenuLimit('room/craft/Import')">下载导入模板</el-button>
                                 <el-upload
-                                        action="device/deviceCraft/downloadTemplate"
+                                        action="device/deviceCraft/importDataByExcel"
                                         :headers="{Authorization: 'Bearer '+ token}"
                                         accept=".xlsx"
                                         :show-file-list="false"
@@ -174,6 +177,7 @@
         getAvailableStepTableListOfRoute,
         submitStepFormOfRoute,
         submitDeleteStepFormOfRoute,
+        downloadBatchImportMouldOfRoute,
     } from 'api/device'
     import {
         ElNotification,
@@ -587,6 +591,10 @@
                     });
                 }
             }
+            //  下载附件模板
+            function downloadImportMould () {
+                downloadBatchImportMouldOfRoute({})
+            }
             getTreeTableList()
             //  暴露
             return {
@@ -597,6 +605,7 @@
                 dictionaryData,
                 getTreeTableList,
                 nodeClick,
+                downloadImportMould,
                 routeAdd,
                 routeEdit,
                 routeDel,

+ 125 - 129
src/views/device/standardInstall.vue

@@ -16,7 +16,7 @@
                     <template #header>
                         <div class="card-header">
                             <span class="card-title">客房维保标准</span>
-                            <el-button size="mini" type="primary" @click="handleAdd" :disabled="!tableData.selectNode || tableData.selectNode.level != 3"
+                            <el-button size="mini" type="primary" @click="handleAdd" :disabled="!tableData.selectNode || tableData.selectNode.level < 3"
                                        v-if="checkMenuLimit('room/deviceStandard/Add')">新增参数</el-button>
                         </div>
                     </template>
@@ -49,136 +49,132 @@
                 </el-card>
             </el-col>
         </el-row>
-        <el-dialog
-                :title="formData.standardFormType == 'add' ? '新增标准' : '编辑标准'"
-                v-model="formData.standardFormShow"
-                custom-class="table-dialog"
-                width="1000px">
-            <el-form ref="standardFormRef" :model="formData.standardForm" :rules="formData.standardFormRules" label-width="100px" class="table-form">
-                <el-row>
-                    <el-col :span="12">
-                        <el-form-item label="参数类型" prop="gtfieldType">
-                            <el-select v-model="formData.standardForm.gtfieldType" placeholder="请选择">
-                                <el-option v-for="item in dictionaryData.paramList" :key="item.value" :label="item.label" :value="item.value"></el-option>
-                            </el-select>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="12">
-                        <el-form-item label="参数名称" prop="gtfieldName">
-                            <el-input v-model="formData.standardForm.gtfieldName"></el-input>
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :span="12">
-                        <el-form-item label="编码" prop="fieldCode">
-                            <el-input v-model="formData.standardForm.fieldCode" :disabled="formData.standardFormType != 'add'"></el-input>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="12">
-                        <el-form-item label="必填" prop="requiredState">
-                            <el-radio-group v-model="formData.standardForm.requiredState">
-                                <el-radio v-for="item in dictionaryData.requireList" :key="item.value" :label="item.value">{{item.label}}</el-radio>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :span="12">
-                        <el-form-item label="强制拍照" prop="photograph">
-                            <el-radio-group v-model="formData.standardForm.photograph">
-                                <el-radio v-for="item in dictionaryData.photoList" :key="item.value" :label="item.value">{{item.label}}</el-radio>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="12">
-                        <el-form-item label="强制扫码" prop="scan">
-                            <el-radio-group v-model="formData.standardForm.scan">
-                                <el-radio v-for="item in dictionaryData.scanList" :key="item.value" :label="item.value">{{item.label}}</el-radio>
-                            </el-radio-group>
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row v-if="checkParamType([1,2,5,7])">
-                    <el-col :span="checkParamType([5,7]) ? 24 : 12" v-if="checkParamType([1,2,5,7])">
-                        <el-form-item label="标准值" prop="defaultValue">
-                            <el-select v-model="formData.standardForm.defaultValue" placeholder="请选择标准值" v-if="checkParamType([7])">
-                                z<el-option label="正常" value="正常"></el-option>
-                                <el-option label="不正常" value="不正常"></el-option>
-                            </el-select>
-                            <el-input v-model="formData.standardForm.defaultValue"
-                                      :placeholder="checkParamType([1]) ? '请输入用英文竖线( | )分割,例如:是|否' : '请输入标准值'"
-                                      v-if="checkParamType([1,2,5])">
-                            </el-input>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="12" v-if="checkParamType([1,2])">
-                        <el-form-item label="单位" prop="units">
-                            <el-input v-model="formData.standardForm.units" placeholder="请输入排序"></el-input>
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :span="checkParamType([2,6,7]) ? 24 : 12">
-                        <el-form-item label="排序" prop="sort">
-                            <el-input v-model="formData.standardForm.sort" placeholder="请输入排序"></el-input>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="12" v-if="checkParamType([1,3,5])">
-                        <el-form-item :label="checkParamType([1]) ? '文本框长度' : (checkParamType([3]) ? '日期格式' : '菜单内容')" prop="gtfieldContent">
-                            <el-select v-model="formData.standardForm.gtfieldContent" placeholder="请选择日期格式" v-if="checkParamType([3])">
-                                <el-option label="yyyy-MM-dd" value="yyyy-MM-dd"></el-option>
-                                <el-option label="yyyy-MM-dd HH:mm:ss" value="yyyy-MM-dd HH:mm:ss"></el-option>
-                            </el-select>
-                            <el-input v-model="formData.standardForm.gtfieldContent"
-                                      :placeholder="checkParamType([1]) ? '请输入文本框长度' : '请输入菜单内容,用英文竖线( | )分割,例如:是|否'"
-                                      v-if="checkParamType([1,5])">
-                            </el-input>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="12" v-if="checkParamType([4])">
-                        <el-form-item label="附件数量" prop="fileNumbers">
-                            <el-input v-model="formData.standardForm.fileNumbers" placeholder="请输入附件数量"></el-input>
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row v-if="checkParamType([2])">
-                    <el-col :span="12">
-                        <el-form-item label="下限值" prop="floorLimit">
-                            <el-input-number v-model="formData.standardForm.floorLimit" controls-position="right" :min="0" :step="1" :precision="0"></el-input-number>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="12">
-                        <el-form-item label="上限值" prop="upperLimit">
-                            <el-input-number v-model="formData.standardForm.upperLimit" controls-position="right" :min="0" :step="1" :precision="0"></el-input-number>
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-                <el-row>
-                    <el-col :span="24">
-                        <el-form-item label="附件">
-                            <el-upload
-                                    action="/device/common/uploadFile"
-                                    :headers="{Authorization:'Bearer '+ token}"
-                                    list-type="picture-card"
-                                    accept=".jpg,.jpeg,.png,.gif"
-                                    :file-list="formData.uploadList"
-                                    :on-success="uploadSuccess"
-                                    :on-error="uploadError"
-                                    :on-remove="uploadRemove">
-                                <i class="el-icon-plus"></i>
-                            </el-upload>
-                        </el-form-item>
-                    </el-col>
-                </el-row>
-            </el-form>
-            <template #footer>
-            <span class="dialog-footer">
+        <el-drawer :title="formData.standardFormType == 'add' ? '新增标准' : '编辑标准'" v-model="formData.standardFormShow" :size="800" custom-class="table-dialog">
+            <div class="drawer-body">
+                <el-form ref="standardFormRef" :model="formData.standardForm" :rules="formData.standardFormRules" label-width="100px" class="table-form" style="background: #ffffff;padding: 15px">
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="参数类型" prop="gtfieldType">
+                                <el-select v-model="formData.standardForm.gtfieldType" placeholder="请选择">
+                                    <el-option v-for="item in dictionaryData.paramList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="参数名称" prop="gtfieldName">
+                                <el-input v-model="formData.standardForm.gtfieldName"></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="编码" prop="fieldCode">
+                                <el-input v-model="formData.standardForm.fieldCode" :disabled="formData.standardFormType != 'add'"></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="必填" prop="requiredState">
+                                <el-radio-group v-model="formData.standardForm.requiredState">
+                                    <el-radio v-for="item in dictionaryData.requireList" :key="item.value" :label="item.value">{{item.label}}</el-radio>
+                                </el-radio-group>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="强制拍照" prop="photograph">
+                                <el-radio-group v-model="formData.standardForm.photograph">
+                                    <el-radio v-for="item in dictionaryData.photoList" :key="item.value" :label="item.value">{{item.label}}</el-radio>
+                                </el-radio-group>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="强制扫码" prop="scan">
+                                <el-radio-group v-model="formData.standardForm.scan">
+                                    <el-radio v-for="item in dictionaryData.scanList" :key="item.value" :label="item.value">{{item.label}}</el-radio>
+                                </el-radio-group>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row v-if="checkParamType([1,2,5,7])">
+                        <el-col :span="checkParamType([5,7]) ? 24 : 12" v-if="checkParamType([1,2,5,7])">
+                            <el-form-item label="标准值" prop="defaultValue">
+                                <el-select v-model="formData.standardForm.defaultValue" placeholder="请选择标准值" v-if="checkParamType([7])">
+                                    z<el-option label="正常" value="正常"></el-option>
+                                    <el-option label="不正常" value="不正常"></el-option>
+                                </el-select>
+                                <el-input v-model="formData.standardForm.defaultValue"
+                                          :placeholder="checkParamType([1]) ? '请输入用英文竖线( | )分割,例如:是|否' : '请输入标准值'"
+                                          v-if="checkParamType([1,2,5])">
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12" v-if="checkParamType([1,2])">
+                            <el-form-item label="单位" prop="units">
+                                <el-input v-model="formData.standardForm.units" placeholder="请输入排序"></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="checkParamType([2,6,7]) ? 24 : 12">
+                            <el-form-item label="排序" prop="sort">
+                                <el-input v-model="formData.standardForm.sort" placeholder="请输入排序"></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12" v-if="checkParamType([1,3,5])">
+                            <el-form-item :label="checkParamType([1]) ? '文本框长度' : (checkParamType([3]) ? '日期格式' : '菜单内容')" prop="gtfieldContent">
+                                <el-select v-model="formData.standardForm.gtfieldContent" placeholder="请选择日期格式" v-if="checkParamType([3])">
+                                    <el-option label="yyyy-MM-dd" value="yyyy-MM-dd"></el-option>
+                                    <el-option label="yyyy-MM-dd HH:mm:ss" value="yyyy-MM-dd HH:mm:ss"></el-option>
+                                </el-select>
+                                <el-input v-model="formData.standardForm.gtfieldContent"
+                                          :placeholder="checkParamType([1]) ? '请输入文本框长度' : '请输入菜单内容,用英文竖线( | )分割,例如:是|否'"
+                                          v-if="checkParamType([1,5])">
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12" v-if="checkParamType([4])">
+                            <el-form-item label="附件数量" prop="fileNumbers">
+                                <el-input v-model="formData.standardForm.fileNumbers" placeholder="请输入附件数量"></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row v-if="checkParamType([2])">
+                        <el-col :span="12">
+                            <el-form-item label="下限值" prop="floorLimit">
+                                <el-input-number v-model="formData.standardForm.floorLimit" controls-position="right" :min="0" :step="1" :precision="0"></el-input-number>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="上限值" prop="upperLimit">
+                                <el-input-number v-model="formData.standardForm.upperLimit" controls-position="right" :min="0" :step="1" :precision="0"></el-input-number>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="24">
+                            <el-form-item label="附件">
+                                <el-upload
+                                        action="/device/common/uploadFile"
+                                        :headers="{Authorization:'Bearer '+ token}"
+                                        list-type="picture-card"
+                                        accept=".jpg,.jpeg,.png,.gif"
+                                        :file-list="formData.uploadList"
+                                        :on-success="uploadSuccess"
+                                        :on-error="uploadError"
+                                        :on-remove="uploadRemove">
+                                    <i class="el-icon-plus"></i>
+                                </el-upload>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                </el-form>
+            </div>
+            <div class="drawer-footer">
                 <el-button size="medium" @click="formData.standardFormShow = false">取 消</el-button>
                 <el-button type="primary" size="medium" @click="submitStandardForm">确 定</el-button>
-            </span>
-            </template>
-        </el-dialog>
+            </div>
+        </el-drawer>
     </div>
 </template>
 

+ 1 - 1
src/views/login.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="login-container" @keydown.enter="handleSubmit">
     <div class="login-content">
-      <div  class="login-title">西软客房系统</div>
+      <div  class="login-title">客房维保系统</div>
       <div class="login-form">
         <el-form ref="submitForm" :model="loginForm" :rules="loginRules" label-width="0px">
           <el-form-item prop="userAccount">

+ 24 - 17
src/views/maintain/roomManage.vue

@@ -17,7 +17,7 @@
                         <div class="card-header">
                             <span class="card-title">房间列表</span>
                             <span style="display: flex">
-                                <el-button size="mini" type="primary" @click="downloadMould" v-if="checkMenuLimit('room/room/Import')">导出模板</el-button>
+                                <el-button size="mini" type="primary" @click="downloadMould" v-if="checkMenuLimit('room/room/Import')">导出房间模板</el-button>
                                 <el-upload
                                     :action="'device/jywsRoom/importRoom/' + (tableData.selectNode ? tableData.selectNode.data.value : '')"
                                     :headers="{Authorization: 'Bearer '+ token}"
@@ -27,7 +27,19 @@
                                     v-if="checkMenuLimit('room/room/Import')"
                                     :disabled="!tableData.selectNode"
                                     style="margin-left: 8px">
-                                    <el-button size="mini" type="primary" :disabled="!tableData.selectNode">批量导入</el-button>
+                                    <el-button size="mini" type="primary" :disabled="!tableData.selectNode">房间批量导入</el-button>
+                                </el-upload>
+                                <el-button size="mini" type="primary" @click="downloadAssetsMould" v-if="checkMenuLimit('room/room/AssetImport')" style="margin-left: 8px">导出资产模板</el-button>
+                                <el-upload
+                                        :action="'device/jywsRoom/importRoomAssets/' + (tableData.selectNode ? tableData.selectNode.data.value : '')"
+                                        :headers="{Authorization: 'Bearer '+ token}"
+                                        accept=".xlsx"
+                                        :show-file-list="false"
+                                        :on-success="uploadSuccess"
+                                        v-if="checkMenuLimit('room/room/AssetImport')"
+                                        :disabled="!tableData.selectNode"
+                                        style="margin-left: 8px">
+                                    <el-button size="mini" type="primary" :disabled="!tableData.selectNode">资产批量导入</el-button>
                                 </el-upload>
                             </span>
                         </div>
@@ -158,18 +170,6 @@
                     </el-tab-pane>
                     <el-tab-pane label="资产信息" name="2">
                         <div style="display: flex; justify-content: flex-end; margin-bottom: 10px;">
-                            <el-button size="mini" type="primary" @click="downloadAssetsMould" v-if="checkMenuLimit('room/room/AssetImport')">导出模板</el-button>
-                            <el-upload
-                                    :action="'device/jywsRoom/importRoomAssets/' + (tableData.selectNode ? tableData.selectNode.data.value : '')"
-                                    :headers="{Authorization: 'Bearer '+ token}"
-                                    accept=".xlsx"
-                                    :show-file-list="false"
-                                    :on-success="uploadSuccess"
-                                    v-if="checkMenuLimit('room/room/AssetImport')"
-                                    :disabled="!tableData.selectNode"
-                                    style="margin-left: 8px">
-                                <el-button size="mini" type="primary" :disabled="!tableData.selectNode">批量导入</el-button>
-                            </el-upload>
                         </div>
                         <el-table :data="tableData.assetsTableList" v-loading="tableData.assetsTableLoading" :height="props.resizeHeight - 290" stripe border fit>
                             <el-table-column prop="assetsClassify" label="资产分类" minWidth="120" align="center"></el-table-column>
@@ -278,8 +278,8 @@
             let dictionaryData = reactive({
                 roomList: [],
                 stateList: [
-                    {label:'空净房', value: 'D',},
-                    {label:'空脏房', value: 'R',},
+                    {label:'空净房', value: 'R',},
+                    {label:'空脏房', value: 'D',},
                     {label:'住净房', value: 'RO',},
                     {label:'住脏房', value: 'DO',},
                     {label:'维修房', value: 'O',},
@@ -430,7 +430,14 @@
                 }).then(res => {
                     if (res.status == 200) {
                         formData.tabActive = '1'
-                        formData.detailForm = res.data
+                        formData.detailForm = {
+                            ...res.data,
+                            roomCustomers: res.data.roomCustomers && res.data.roomCustomers.length ? [res.data.roomCustomers[0]] : [{
+                                residents: '-',
+                                checkInTime: '-',
+                                departureTime: '-',
+                            }],
+                        }
                         formData.detailFormShow = true
                     } else {
                         ElNotification({

+ 2 - 2
src/views/maintain/roomTask.vue

@@ -499,8 +499,8 @@
                     {value: '7', label: '审核关闭'}
                 ],
                 roomList:[
-                    {label:'空净房', value: 'D',},
-                    {label:'空脏房', value: 'R',},
+                    {label:'空净房', value: 'R',},
+                    {label:'空脏房', value: 'D',},
                     {label:'住净房', value: 'RO',},
                     {label:'住脏房', value: 'DO',},
                     {label:'维修房', value: 'O',},

+ 4 - 4
vite.config.js

@@ -25,17 +25,17 @@ export default ({ command, mode }) => {
         proxy:{
           '/landcrm': {
             // target: 'http://114.215.254.174:8050/',
-            target: 'https://ebeitest.wuyeface.com:1188/',
-            // target: 'http://172.18.0.23/',
+            // target: 'https://ebeitest.wuyeface.com:1188/',
+            target: 'http://172.18.0.23/',
             changeOrigin: true,
             ws: true,
             rewrite: (path) => path.replace(/^\/landcrm/, '/landcrm')
           },
           '/device': {
             // target: 'http://114.215.254.174:8050/',
-            target: 'https://ebeitest.wuyeface.com:1188/',
+            // target: 'https://ebeitest.wuyeface.com:1188/',
             // target: 'http://172.18.0.23/',
-            // target: 'http://172.18.1.40:8089/',
+            target: 'http://172.18.1.40:8089/',
             changeOrigin: true,
             ws: true,
             rewrite: (path) => path.replace(/^\/device/, '/device')