Просмотр исходного кода

Merge branch 'V2' of http://47.92.161.104:10080/zq/jp-housekeeper-portal into V2

zhengqiang 5 лет назад
Родитель
Сommit
1329f337ab

+ 121 - 54
src/views/base/companyInfo-detail.vue

@@ -9,28 +9,45 @@
     :visible.sync="showDialog"
     :title="title"
     :modal-append-to-body="false"
-    style="text-align:left;"
+    style="text-align: left"
     @close="closeDialog"
     :close-on-click-modal="false"
   >
     <div class="user-panel" v-loading="loading">
-      <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'100px'">
+      <el-form
+        ref="form"
+        :model="formModel"
+        :rules="ruleValidate"
+        :label-width="'100px'"
+      >
         <el-row>
           <el-col :span="12">
             <el-form-item label="单位名称" prop="name">
-              <el-input v-model="formModel.name" placeholder="请输入单位名称" style="width:80%"></el-input>
+              <el-input
+                v-model="formModel.name"
+                placeholder="请输入单位名称"
+                style="width: 80%"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="序号" prop="sortNo">
-              <el-input v-model="formModel.sortNo" placeholder="请输入序号" style="width:50%"></el-input>
+              <el-input
+                v-model="formModel.sortNo"
+                placeholder="请输入序号"
+                style="width: 50%"
+              ></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="简称" prop="shortName">
-              <el-input v-model="formModel.shortName" placeholder="请输入单位名称" style="width:80%"></el-input>
+              <el-input
+                v-model="formModel.shortName"
+                placeholder="请输入单位名称"
+                style="width: 80%"
+              ></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -80,7 +97,31 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="场景值" prop="sceneId">
-              <el-select v-model="formModel.sceneId" filterable placeholder="请选择" style="width:50%">
+              <el-select
+                v-model="formModel.sceneId"
+                filterable
+                clearable
+                placeholder="请选择"
+                style="width: 50%"
+              >
+                <el-option
+                  v-for="result in sceneData"
+                  :key="result.id"
+                  :label="result.sceneName"
+                  :value="result.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" v-if="formModel.sceneId == '1'">
+            <el-form-item label="服务场景" prop="type">
+              <el-select
+                v-model="formModel.type"
+                filterable
+                clearable 
+                placeholder="请选择"
+                style="width: 50%"
+              >
                 <el-option
                   v-for="result in sceneData"
                   :key="result.id"
@@ -91,9 +132,9 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row  v-if="formModel.sceneId == '2'">
+        <el-row>
           <el-col :span="12">
-            <el-form-item label="关联单位" prop="relationCompanyId">
+            <el-form-item label="关联物业公司" prop="relationCompanyId">
               <el-select-tree
                 :props="props"
                 :options="companyResult"
@@ -102,18 +143,6 @@
               ></el-select-tree>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="关联场景" prop="type">
-              <el-select v-model="formModel.type" filterable placeholder="请选择" style="width:50%">
-                <el-option
-                  v-for="result in sceneData"
-                  :key="result.id"
-                  :label="result.sceneName"
-                  :value="result.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
         </el-row>
         <el-row>
           <el-col :span="24">
@@ -122,7 +151,7 @@
                 type="textarea"
                 v-model="formModel.remark"
                 :rows="2"
-                style="width:80%;"
+                style="width: 80%"
                 placeholder="请输入备注"
               ></el-input>
             </el-form-item>
@@ -131,38 +160,62 @@
         <el-row>
           <el-col :span="24">
             <el-form-item label="大屏网址" prop="wallUrl">
-              <el-input v-model="formModel.wallUrl" placeholder="请输入" style="width:100%"></el-input>
+              <el-input
+                v-model="formModel.wallUrl"
+                placeholder="请输入"
+                style="width: 100%"
+              ></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="一级位置" prop="position1Name">
-              <el-input v-model="formModel.position1Name" placeholder="请输入一级位置" style="width:80%"></el-input>
+              <el-input
+                v-model="formModel.position1Name"
+                placeholder="请输入一级位置"
+                style="width: 80%"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="二级位置" prop="position2Name">
-              <el-input v-model="formModel.position2Name" placeholder="请输入二级位置" style="width:80%"></el-input>
+              <el-input
+                v-model="formModel.position2Name"
+                placeholder="请输入二级位置"
+                style="width: 80%"
+              ></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="三级位置" prop="position3Name">
-              <el-input v-model="formModel.position3Name" placeholder="请输入三级位置" style="width:80%"></el-input>
+              <el-input
+                v-model="formModel.position3Name"
+                placeholder="请输入三级位置"
+                style="width: 80%"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="四级位置" prop="position4Name">
-              <el-input v-model="formModel.position4Name" placeholder="请输入四级位置" style="width:80%"></el-input>
+              <el-input
+                v-model="formModel.position4Name"
+                placeholder="请输入四级位置"
+                style="width: 80%"
+              ></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="五级位置" prop="position5Name">
-              <el-input v-model="formModel.position5Name" placeholder="请输入五级位置" style="width:80%"></el-input>
+              <el-input
+                v-model="formModel.position5Name"
+                placeholder="请输入五级位置"
+                style="width: 80%"
+              ></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -189,7 +242,9 @@
     </div>
     <span slot="footer" class="dialog-footer">
       <el-button @click="closeDialog">取 消</el-button>
-      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
+      <el-button type="primary" @click="handleSubmit" :loading="submitting"
+        >确 定</el-button
+      >
     </span>
   </el-dialog>
 </template>
@@ -210,10 +265,14 @@ export default {
       formModel: {},
       ruleValidate: {
         name: [
-          { required: true, message: "单位名称不能为空", trigger: "blur" }
+          { required: true, message: "单位名称不能为空", trigger: "blur" },
+        ],
+        regionId: [
+          { required: true, message: "地区不能为空", trigger: "blur" },
+        ],
+        sceneId: [
+          { required: true, message: "场景值不能为空", trigger: "blur" },
         ],
-        regionId: [{ required: true, message: "地区不能为空", trigger: "blur" }],
-        sceneId: [{ required: true, message: "场景值不能为空", trigger: "blur" }]
         // type: [{ required: true, message: "性质不能为空", trigger: "blur" }]
       },
       showDialog: true,
@@ -222,11 +281,11 @@ export default {
       //上传地址
       uploadUrl: Constant.serverUrl + "/uploadPicture",
       uploadData: {
-        subFolder: "companyInfo"
+        subFolder: "companyInfo",
       },
       fileUrl: "",
       headers: {
-        Authorization: getToken()
+        Authorization: getToken(),
       },
       companyResult: [],
       typeData: [],
@@ -235,15 +294,15 @@ export default {
         // 配置项(必选)
         value: "id",
         label: "name",
-        children: "children"
+        children: "children",
       },
-      sceneData:[],
-      regionData:[]
+      sceneData: [],
+      regionData: [],
     };
   },
   created() {
     var self = this;
-    companyInfoApi.list().then(function(response) {
+    companyInfoApi.list().then(function (response) {
       var jsonData = response.data;
       if (jsonData.result) {
         self.companyResult = jsonData.data;
@@ -252,24 +311,32 @@ export default {
 
     var formData = new FormData();
     formData.append("catalogName", "单位性质");
-    dataDictionaryApi.findByCatalogName(formData).then(response => {
+    dataDictionaryApi.findByCatalogName(formData).then((response) => {
       var jsonData = response.data;
       this.typeData = jsonData.data;
     });
 
-    sceneInfoApi.list().then(response => {
+    sceneInfoApi.list().then((response) => {
       var jsonData = response.data;
       this.sceneData = jsonData.data;
     });
 
-    regionInfoApi.list().then(response => {
+    regionInfoApi.list().then((response) => {
       var jsonData = response.data;
       this.regionData = jsonData.data;
     });
-    
 
     //this.loadTree();
   },
+  watch: {
+    "formModel.sceneId": function (newVal, oldVal) {
+      if (newVal != null) {
+        if(newVal != '1'){
+          this.formModel.type = "";
+        }
+      } 
+    },
+  },
   methods: {
     // getSelectedValue(value) {
     //   this.formModel.parentId = value;
@@ -306,16 +373,16 @@ export default {
     handleSubmit() {
       var self = this;
 
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
-          (function() {
+          (function () {
             var id = self.formModel.id;
 
             if (self.formModel.parentId == null) {
               self.formModel.parentId = "";
             }
 
-            if(self.formModel.relationCompanyId == null){
+            if (self.formModel.relationCompanyId == null) {
               self.formModel.relationCompanyId = "";
             }
 
@@ -324,20 +391,20 @@ export default {
             } else {
               return companyInfoApi.update(self.formModel);
             }
-          })().then(function(response) {
+          })().then(function (response) {
             var jsonData = response.data;
 
             if (jsonData.result) {
               self.$message({
                 message: "保存成功!",
-                type: "success"
+                type: "success",
               });
 
               self.$emit("close", true);
             } else {
               self.$message({
                 message: jsonData.message + "",
-                type: "warning"
+                type: "warning",
               });
 
               self.$emit("close", false);
@@ -363,18 +430,18 @@ export default {
         this.$message.error("上传头像图片大小不能超过 2MB!");
       }
       return isJPG && isLt2M;
-    }
+    },
   },
-  mounted: function() {
+  mounted: function () {
     var self = this;
-    (function() {
+    (function () {
       if (self.businessKey.length == 0) {
         return companyInfoApi.create();
       } else {
         return companyInfoApi.edit(self.businessKey);
       }
     })()
-      .then(response => {
+      .then((response) => {
         var jsonData = response.data;
         self.loading = false;
 
@@ -389,13 +456,13 @@ export default {
           self.$message.error(jsonData.message + "");
         }
       })
-      .catch(error => {
+      .catch((error) => {
         self.$message.error(error + "");
       });
   },
   components: {
-    "el-select-tree": SelectTree
-  }
+    "el-select-tree": SelectTree,
+  },
 };
 </script>
 <style>

+ 157 - 59
src/views/base/companyInfo-list.vue

@@ -1,5 +1,5 @@
 <template>
-  <div style="padding-left:5px;">
+  <div style="padding-left: 5px">
     <el-breadcrumb separator=">">
       <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
       <el-breadcrumb-item>
@@ -10,7 +10,12 @@
       </el-breadcrumb-item>
     </el-breadcrumb>
     <el-divider></el-divider>
-    <el-form ref="queryForm" :model="queryModel" inline class="demo-form-inline">
+    <el-form
+      ref="queryForm"
+      :model="queryModel"
+      inline
+      class="demo-form-inline"
+    >
       <el-form-item label="单位名称" prop="name">
         <el-input type="text" size="mini" v-model="queryModel.name"></el-input>
       </el-form-item>
@@ -35,8 +40,11 @@
           :options="companyResult"
           v-model="queryModel.parentId"
           height="200"
-        ></el-select-tree>&nbsp;
-        <el-checkbox v-model="queryModel.subordinate">是否包含下级单位</el-checkbox>
+        ></el-select-tree
+        >&nbsp;
+        <el-checkbox v-model="queryModel.subordinate"
+          >是否包含下级单位</el-checkbox
+        >
       </el-form-item>
       <el-form-item label="适用场景" prop="sceneId">
         <el-select
@@ -54,6 +62,22 @@
           ></el-option>
         </el-select>
       </el-form-item>
+      <!-- <el-form-item label="服务场景" prop="type">
+        <el-select
+          v-model="queryModel.type"
+          filterable
+          placeholder="请选择"
+          style="width: 110px"
+          size="mini"
+        >
+          <el-option
+            v-for="result in sceneData"
+            :key="result.id"
+            :label="result.sceneName"
+            :value="result.id"
+          ></el-option>
+        </el-select>
+      </el-form-item> -->
       <el-form-item>
         <el-button
           type="primary"
@@ -61,33 +85,44 @@
           icon="ios-search"
           @click="changePage(1)"
           :loading="loading"
-        >查询</el-button>&nbsp;
+          >查询</el-button
+        >&nbsp;
         <el-button
           type="info"
           size="mini"
           style="margin-left: 8px"
           @click="handleReset('queryForm')"
-        >重置</el-button>&nbsp;
+          >重置</el-button
+        >&nbsp;
       </el-form-item>
     </el-form>
     <el-divider></el-divider>
     <el-row class="button-group">
-      <el-button type="primary" size="small" plain icon="el-icon-circle-plus" @click="handleAdd">新增</el-button>
+      <el-button
+        type="primary"
+        size="small"
+        plain
+        icon="el-icon-circle-plus"
+        @click="handleAdd"
+        >新增</el-button
+      >
       <el-button
         type="primary"
         size="small"
         plain
         icon="el-icon-remove"
-        :disabled="multipleSelection.length==0"
+        :disabled="multipleSelection.length == 0"
         @click="handleBatchDelete"
-      >删除选中项</el-button>
+        >删除选中项</el-button
+      >
       <el-button
         type="primary"
         size="small"
         plain
         icon="el-icon-upload2"
         @click="batchImportVisible = true"
-      >导入</el-button>
+        >导入</el-button
+      >
     </el-row>
     <el-table
       ref="formTable"
@@ -100,19 +135,64 @@
     >
       <el-table-column type="selection" width="55"></el-table-column>
       <el-table-column prop="sortNo" label="序号" width="120"></el-table-column>
-      <el-table-column prop="name" label="单位名称" width="230"></el-table-column>
-      <el-table-column prop="shortName" label="简称" width="120"></el-table-column>
-      <el-table-column prop="parentName" label="上级单位" width="230"></el-table-column>
-      <el-table-column prop="sceneName" label="场景值" width="90"></el-table-column>
-      <el-table-column prop="regionName" label="地区" width="90"></el-table-column>
-      <el-table-column prop="remark" sort-by="remark_" width="350" label="备注"></el-table-column>
+      <el-table-column
+        prop="name"
+        label="单位名称"
+        width="230"
+      ></el-table-column>
+      <el-table-column
+        prop="shortName"
+        label="简称"
+        width="120"
+      ></el-table-column>
+      <el-table-column
+        prop="parentName"
+        label="上级单位"
+        width="230"
+      ></el-table-column>
+      <el-table-column
+        prop="sceneName"
+        label="场景值"
+        width="90"
+      ></el-table-column>
+      <el-table-column
+        prop="typeName"
+        label="服务场景"
+        width="90"
+      ></el-table-column>
+      <el-table-column
+        prop="regionName"
+        label="地区"
+        width="90"
+      ></el-table-column>
+      <el-table-column
+        prop="remark"
+        sort-by="remark_"
+        width="350"
+        label="备注"
+      ></el-table-column>
       <el-table-column label="操作" width="350" fixed="right">
-        <template slot-scope="{row}">
+        <template slot-scope="{ row }">
           <el-row>
             <el-col>
-              <el-link type="primary" :underline="false" @click="handleEdit(row)">编辑</el-link>-
-              <el-link type="danger" :underline="false" @click="handleDelete(row)">删除</el-link>-
-              <el-link type="primary" :underline="false" @click="bindDevice(row)">绑定设备</el-link>-
+              <el-link
+                type="primary"
+                :underline="false"
+                @click="handleEdit(row)"
+                >编辑</el-link
+              >-
+              <el-link
+                type="danger"
+                :underline="false"
+                @click="handleDelete(row)"
+                >删除</el-link
+              >-
+              <el-link
+                type="primary"
+                :underline="false"
+                @click="bindDevice(row)"
+                >绑定设备</el-link
+              >-
               <el-popover
                 placement="left"
                 width="300"
@@ -120,11 +200,18 @@
                 @show="openQRCode(row)"
                 @hide="closeQRCode(row)"
               >
-                <div :ref="'qrcode_' + row.id" style="width:300px;height:300px;"></div>
-                <el-link type="primary" :underline="false" slot="reference">健康公示二维码</el-link>
-              </el-popover>-
+                <div
+                  :ref="'qrcode_' + row.id"
+                  style="width: 300px; height: 300px"
+                ></div>
+                <el-link type="primary" :underline="false" slot="reference"
+                  >健康公示二维码</el-link
+                > </el-popover
+              >-
               <span v-if="row.type != null && row.type != ''">
-                <el-link type="primary" :underline="false" @click="openDP(row)">大屏网址</el-link>
+                <el-link type="primary" :underline="false" @click="openDP(row)"
+                  >大屏网址</el-link
+                >
               </span>
             </el-col>
           </el-row>
@@ -154,7 +241,7 @@
       title="导入"
       :visible.sync="batchImportVisible"
       :modal-append-to-body="false"
-      style="text-align: left;"
+      style="text-align: left"
       :close-on-click-modal="false"
     >
       <el-form label-width="150px">
@@ -163,7 +250,8 @@
             href="http://rccs.oss-cn-hangzhou.aliyuncs.com/smart/companyInfo/2020/4/13111357680.xls"
             type="primary"
             target="_blank"
-          >点击下载模板</el-link>
+            >点击下载模板</el-link
+          >
         </el-form-item>
         <el-form-item label="上传文件">
           <el-upload
@@ -183,13 +271,19 @@
             :on-success="handleBatchImportSuccess"
             :file-list="batchImportFileList"
           >
-            <el-button size="small" type="primary" :loading="xlsLoading">点击上传</el-button>
-            <div slot="tip" class="el-upload__tip">只能上传xls文件,且不超过500kb</div>
+            <el-button size="small" type="primary" :loading="xlsLoading"
+              >点击上传</el-button
+            >
+            <div slot="tip" class="el-upload__tip">
+              只能上传xls文件,且不超过500kb
+            </div>
           </el-upload>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="batchImportVisible = false">关 闭</el-button>
+        <el-button type="primary" @click="batchImportVisible = false"
+          >关 闭</el-button
+        >
       </div>
     </el-dialog>
     <!--批量导入E-->
@@ -218,7 +312,8 @@ export default {
         name: "",
         parentId: "",
         subordinate: false,
-        sceneId: ""
+        sceneId: "",
+        type: "",
       },
       loading: false,
       tableData: [],
@@ -243,20 +338,20 @@ export default {
         // 配置项(必选)
         value: "id",
         label: "name",
-        children: "children"
+        children: "children",
       },
       batchImportVisible: false,
       batchImportFileList: [],
       uploadUrlXls: Constant.serverUrl + "/base/companyInfo/importXls",
       uploadXlsData: {
         subFolder: "company",
-        companyId: ""
+        companyId: "",
       },
       headers: {
-        Authorization: getToken()
+        Authorization: getToken(),
       },
       xlsLoading: false,
-      sceneData: []
+      sceneData: [],
     };
   },
   created() {
@@ -267,7 +362,7 @@ export default {
       this.sceneData = jsonData.data;
     });
 
-    companyInfoApi.list().then(function(response) {
+    companyInfoApi.list().then(function (response) {
       var jsonData = response.data;
       if (jsonData.result) {
         self.companyResult = jsonData.data;
@@ -284,7 +379,7 @@ export default {
     loadTree() {
       var formData = new FormData();
 
-      companyInfoApi.loadChildren(formData).then(resp => {
+      companyInfoApi.loadChildren(formData).then((resp) => {
         var jsonData = resp.data;
 
         if (jsonData.result) {
@@ -300,7 +395,7 @@ export default {
       var formData = new FormData();
       formData.append("parentId", tree.id);
 
-      companyInfoApi.loadChildren(formData).then(resp => {
+      companyInfoApi.loadChildren(formData).then((resp) => {
         var jsonData = resp.data;
 
         if (jsonData.result) {
@@ -321,21 +416,24 @@ export default {
       formData.append("pageIndex", self.pageIndex);
       formData.append("pageSize", self.pageSize);
 
-      if(self.queryModel.name!=null){
+      if (self.queryModel.name != null) {
         formData.append("name", self.queryModel.name);
       }
 
-      if(self.queryModel.parentId!=null){
+      if (self.queryModel.parentId != null) {
         formData.append("parentId", self.queryModel.parentId);
       }
 
       formData.append("subordinate", self.queryModel.subordinate);
 
-
-      if(self.queryModel.sceneId!=null){
+      if (self.queryModel.sceneId != null) {
         formData.append("sceneId", self.queryModel.sceneId);
       }
 
+      // if (self.queryModel.type != null) {
+      //   formData.append("type", self.queryModel.type);
+      // }
+
       if (this.field != null) {
         formData.append("field", this.field);
       }
@@ -346,7 +444,7 @@ export default {
 
       companyInfoApi
         .pageList(formData)
-        .then(function(response) {
+        .then(function (response) {
           self.loading = false;
 
           var jsonData = response.data.data;
@@ -359,7 +457,7 @@ export default {
           self.tableHeight =
             window.innerHeight - self.$refs.formTable.$el.offsetTop - 45;
         })
-        .catch(error => {
+        .catch((error) => {
           self.loading = false;
           // self.$message.error(error + "");
         });
@@ -396,10 +494,10 @@ export default {
         .$confirm("是否确认删除?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
-          type: "warning"
+          type: "warning",
         })
         .then(() => {
-          companyInfoApi.remove(record.id).then(function(response) {
+          companyInfoApi.remove(record.id).then(function (response) {
             var jsonData = response.data;
 
             if (jsonData.result) {
@@ -409,7 +507,7 @@ export default {
 
               self.$message({
                 type: "success",
-                message: "删除成功!"
+                message: "删除成功!",
               });
             }
           });
@@ -418,16 +516,16 @@ export default {
     handleBatchDelete() {
       var self = this;
 
-      var idList = this.multipleSelection.map(record => {
+      var idList = this.multipleSelection.map((record) => {
         return record.id;
       });
 
       this.$confirm("是否确认删除选中项?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       }).then(() => {
-        companyInfoApi.batchRemove(idList).then(function(response) {
+        companyInfoApi.batchRemove(idList).then(function (response) {
           var jsonData = response.data;
 
           if (jsonData.result) {
@@ -435,7 +533,7 @@ export default {
 
             self.$message({
               type: "success",
-              message: "删除成功!"
+              message: "删除成功!",
             });
           }
         });
@@ -487,7 +585,7 @@ export default {
         height: 300,
         colorDark: "#333333", //二维码颜色
         colorLight: "#ffffff", //二维码背景色
-        correctLevel: QRCode.CorrectLevel.L //容错率,L/M/H
+        correctLevel: QRCode.CorrectLevel.L, //容错率,L/M/H
       });
     },
     closeQRCode(record) {
@@ -553,7 +651,7 @@ export default {
             message:
               response.message +
               `,<a href="${response.data}" target="_blank">点击下载未导入的数据报表</a>&nbsp;`,
-            duration: 30000
+            duration: 30000,
           });
         }
       }
@@ -573,18 +671,18 @@ export default {
     //批量导入-文件超出个数限制时的钩子
     handleBatchImportExceed(files, fileList) {
       this.$message.warning(
-        `当前限制选择 3 个文件,本次选择了 ${
-          files.length
-        } 个文件,共选择了 ${files.length + fileList.length} 个文件`
+        `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
+          files.length + fileList.length
+        } 个文件`
       );
-    }
+    },
   },
-  mounted: function() {},
+  mounted: function () {},
   components: {
     "companyInfo-detail": companyInfoDetail,
     "companyDeviceRelation-list": companyDeviceRelationList,
-    "el-select-tree": SelectTree
-  }
+    "el-select-tree": SelectTree,
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 77 - 66
src/views/base/parkingInfo-detail.vue

@@ -9,29 +9,40 @@
     :visible.sync="showDialog"
     :title="title"
     :modal-append-to-body="false"
-    style="text-align:left;"
+    style="text-align: left"
     @close="closeDialog"
     :close-on-click-modal="false"
   >
     <div class="user-panel" v-loading="loading">
-    <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'100px'">
-      <el-form-item label="名称" prop="parkingName">
-        <el-input v-model="formModel.parkingName" placeholder="请输入名称" style="width:300px"></el-input>
-      </el-form-item>
-      <el-form-item label="上级" prop="parentId">
-        <el-select-tree
-          size="mini"
-          :props="parentProps"
-          :options="parentResult"
-          v-model="formModel.parentId"
-          height="200"
-        ></el-select-tree>
-      </el-form-item>
-	  </el-form>
-  </div>
-      <span slot="footer" class="dialog-footer">
+      <el-form
+        ref="form"
+        :model="formModel"
+        :rules="ruleValidate"
+        :label-width="'100px'"
+      >
+        <el-form-item label="名称" prop="parkingName">
+          <el-input
+            v-model="formModel.parkingName"
+            placeholder="请输入名称"
+            style="width: 300px"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="上级" prop="parentId">
+          <el-select-tree
+            size="mini"
+            :props="parentProps"
+            :options="parentResult"
+            v-model="formModel.parentId"
+            height="200"
+          ></el-select-tree>
+        </el-form-item>
+      </el-form>
+    </div>
+    <span slot="footer" class="dialog-footer">
       <el-button @click="closeDialog">取 消</el-button>
-      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
+      <el-button type="primary" @click="handleSubmit" :loading="submitting"
+        >确 定</el-button
+      >
     </span>
   </el-dialog>
 </template>
@@ -41,29 +52,29 @@ import parkingInfoApi from "@/api/base/parkingInfo";
 import SelectTree from "@/components/SelectTree";
 
 export default {
-  props: ["businessKey","title"],
+  props: ["businessKey", "title"],
   data() {
     return {
       formModel: {},
       ruleValidate: {
-            parkingName: [
-                { required: true, message: '名称不能为空', trigger: 'blur' }
-            ]
-          },
+        parkingName: [
+          { required: true, message: "名称不能为空", trigger: "blur" },
+        ],
+      },
       showDialog: true,
       loading: false,
       submitting: false,
       parentResult: [],
       parentProps: {
         value: "id",
-        label: "parkingName"
+        label: "parkingName",
       },
     };
   },
   created() {
     var self = this;
 
-    parkingInfoApi.query().then(function(response) {
+    parkingInfoApi.query().then(function (response) {
       var jsonData = response.data;
       if (jsonData.result) {
         self.parentResult = jsonData.data;
@@ -72,70 +83,70 @@ export default {
   },
   methods: {
     closeDialog() {
-	this.$emit("close",false);
+      this.$emit("close", false);
     },
     handleSubmit() {
       var self = this;
 
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
-          (function(){
+          (function () {
             var id = self.formModel.id;
 
             if (id == null || id.length == 0) {
               return parkingInfoApi.add(self.formModel);
-            }
-            else{
+            } else {
               return parkingInfoApi.update(self.formModel);
             }
-          })().then(function(response) {
-              var jsonData = response.data;
+          })().then(function (response) {
+            var jsonData = response.data;
 
-              if (jsonData.result) {
-                self.$message({
-                  message: "保存成功!",
-                  type: "success"
-                });
+            if (jsonData.result) {
+              self.$message({
+                message: "保存成功!",
+                type: "success",
+              });
 
-                self.$emit("close",true);
-              } else {
-                self.$message({
-                  message: jsonData.message + "",
-                  type: "warning"
-                });
+              self.$emit("close", true);
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning",
+              });
 
-                self.$emit("close",false);
-              }
-            });
+              self.$emit("close", false);
+            }
+          });
         }
       });
-    }
+    },
   },
-  mounted: function() {
+  mounted: function () {
     var self = this;
 
-    (function(){
-      if(self.businessKey.length==0){
-        return parkingInfoApi.create()
-      }
-      else{
-        return parkingInfoApi.edit(self.businessKey)
-      }
-    })().then(response => {
-      var jsonData = response.data;
-      self.loading = false;
-
-      if (jsonData.result) {
-        self.formModel = jsonData.data;
+    (function () {
+      if (self.businessKey.length == 0) {
+        return parkingInfoApi.create();
       } else {
-        self.$message.error(jsonData.message + "");
+        return parkingInfoApi.edit(self.businessKey);
       }
-    }).catch(error => {
-      self.$message.error(error + "");
-    });
+    })()
+      .then((response) => {
+        var jsonData = response.data;
+        self.loading = false;
+
+        if (jsonData.result) {
+          self.formModel = jsonData.data;
+        } else {
+          self.$message.error(jsonData.message + "");
+        }
+      })
+      .catch((error) => {
+        self.$message.error(error + "");
+      });
   },
   components: {
-    "el-select-tree": SelectTree
+    "el-select-tree": SelectTree,
   },
 };
 </script>

+ 46 - 12
src/views/base/personPopedom-detail.vue

@@ -20,11 +20,12 @@
         :rules="ruleValidate"
         :label-width="'100px'"
       >
-        <el-form-item label="公司" prop="companyId">
+        <el-form-item label="单位" prop="companyId">
           <el-select-tree
             :props="props"
             :options="companyResult"
             v-model="formModel.companyId"
+            size=""
             height="200"
           ></el-select-tree>
         </el-form-item>
@@ -34,10 +35,15 @@
             :options="companyStructureResult"
             v-model="formModel.companyStructureId"
             height="200"
+            size=""
           ></el-select-tree>
         </el-form-item>
         <el-form-item label="关联场景" prop="sceneId">
-          <el-select v-model="sceneId" filterable placeholder="请选择">
+          <el-select
+            v-model="formModel.sceneId"
+            filterable
+            placeholder="请选择"
+          >
             <el-option
               v-for="result in sceneData"
               :key="result.id"
@@ -46,6 +52,18 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item
+          label="服务公司"
+          prop="serviceCompanyId"
+          v-if="sceneId == '4'"
+        >
+          <el-select-tree
+            :props="props"
+            :options="companyResult"
+            v-model="formModel.serviceCompanyId"
+            height="200"
+          ></el-select-tree>
+        </el-form-item>
         <el-form-item label="身份" prop="personRoleId">
           <el-select
             v-model="formModel.personRoleId"
@@ -118,6 +136,9 @@ export default {
         companyId: [
           { required: true, message: "对应公司不能为空", trigger: "blur" },
         ],
+        sceneId: [
+          { required: true, message: "关联场景值不能为空", trigger: "blur" },
+        ],
         personRoleId: [
           { required: true, message: "对应角色不能为空", trigger: "blur" },
         ],
@@ -144,6 +165,7 @@ export default {
       },
       sceneData: [],
       sceneId: "",
+      oldPersonRoleId: "",
     };
   },
   created() {
@@ -177,7 +199,12 @@ export default {
     "formModel.companyId": function (val, oldval) {
       if (val != null && val != "") {
         var self = this;
-        self.formModel.personRoleId = "";
+        // if (self.oldPersonRoleId != "") {
+        //   self.formModel.personRoleId = self.oldPersonRoleId;
+        // } else {
+        //   self.formModel.personRoleId = "";
+        //   self.oldPersonRoleId = "";
+        // }
         var formData = new FormData();
         formData.append("companyId", val);
         personRoleInfoApi.listByCompanyId(formData).then(function (response) {
@@ -198,25 +225,31 @@ export default {
           }
         });
 
-        companyInfoApi.edit(val).then((response) => {
-          var jsonData = response.data;
-          if (jsonData.result) {
-            self.sceneId = jsonData.data.sceneId;
-          }
-        });
+        if (self.oldPersonRoleId == "") {
+          companyInfoApi.edit(val).then((response) => {
+            var jsonData = response.data;
+            if (jsonData.result) {
+              self.formModel.sceneId = jsonData.data.sceneId;
+            }
+          });
+        }
       }
     },
-    "sceneId": function (val, oldval) {
+    "formModel.sceneId": function (val, oldval) {
       if (val != null && val != "") {
         var self = this;
         var formData = new FormData();
         formData.append("sceneId", val);
-      
         personRoleInfoApi.findBySceneId(formData).then(function (response) {
           var jsonData = response.data;
           if (jsonData.result) {
             if (jsonData.data != null && jsonData.data != "") {
-              self.formModel.personRoleId = "";
+              // if (self.oldPersonRoleId != "") {
+              //   self.formModel.personRoleId = self.oldPersonRoleId;
+              // } else {
+              //   self.formModel.personRoleId = "";
+              //   self.oldPersonRoleId = "";
+              // }
               self.personRoleResult = jsonData.data;
             }
           }
@@ -318,6 +351,7 @@ export default {
 
         if (jsonData.result) {
           self.formModel = jsonData.data;
+          self.oldPersonRoleId = self.formModel.personRoleId;
         } else {
           self.$message.error(jsonData.message + "");
         }

+ 17 - 2
src/views/base/personPopedom-list.vue

@@ -53,8 +53,13 @@
         <el-table-column
           prop="roleName"
           label="身份"
-          width="150"
+          width="200"
         ></el-table-column>
+        <!-- <el-table-column
+          prop="serviceCompanyName"
+          label="服务公司"
+          width="150"
+        ></el-table-column> -->
         <!-- <el-table-column
           prop="showIconId"
           label="图标信息"
@@ -65,7 +70,7 @@
           label="备注信息"
           width="120"
         ></el-table-column>
-        <el-table-column prop="useEnable" label="默认" width="180">
+        <el-table-column prop="useEnable" label="默认" width="100">
           <template slot-scope="{ row }">
             <el-switch
               v-model="row.isDefault"
@@ -78,6 +83,9 @@
         </el-table-column>
         <el-table-column label="操作" width="100">
           <template slot-scope="{ row }">
+            <el-link type="warning" :underline="false" @click="handleEdit(row)"
+              >编辑</el-link
+            >-
             <el-link type="danger" :underline="false" @click="handleDelete(row)"
               >删除</el-link
             >
@@ -195,6 +203,13 @@ export default {
       this.showModal = true;
       this.personId = this.personId;
     },
+    handleEdit(record) {
+      this.modalTitle = "编辑";
+      this.operation = "edit";
+      this.businessKey = record.id;
+      this.personId = this.personId;
+      this.showModal = true;
+    },
     handleDelete(record) {
       var self = this;
       this.$confirm("是否解除关联?", "提示", {

+ 52 - 6
src/views/sys/user-list.vue

@@ -21,12 +21,12 @@
         <el-input type="text" size="mini" v-model="queryModel.realName"></el-input>
       </el-form-item>
       <el-form-item label="所属单位" prop="companyId">
-        <el-select
+        <!-- <el-select
           v-model="queryModel.companyId"
           size="mini"
           filterable
           placeholder="请选择"
-          style="width:300px"
+          style="width:200px"
         >
           <el-option
             v-for="company in companyResult"
@@ -34,6 +34,29 @@
             :label="company.name"
             :value="company.id"
           ></el-option>
+        </el-select> -->
+        <el-select-tree
+          size="mini"
+          :props="props"
+          :options="companyResult"
+          v-model="queryModel.companyId"
+          height="200"
+        ></el-select-tree>
+      </el-form-item>
+      <el-form-item label="角色" prop="roleId">
+        <el-select
+          v-model="queryModel.roleId"
+          size="mini"
+          filterable
+          placeholder="请选择"
+          style="width:200px"
+        >
+          <el-option
+            v-for="role in roleResult"
+            :key="role.id"
+            :label="role.description"
+            :value="role.id"
+          ></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -156,7 +179,9 @@
 import Constant from "@/constant";
 import UserDetail from "./user-detail";
 import userApi from "@/api/sys/user";
+import roleApi from "@/api/sys/role";
 import companyInfoApi from "@/api/base/companyInfo";
+import SelectTree from "@/components/SelectTree";
 import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
 
@@ -169,7 +194,8 @@ export default {
       queryModel: {
         userName: "",
         realName: "",
-        companyId:""
+        companyId:"",
+        roleId:""
       },
       loading: false,
       tableData: [],
@@ -186,7 +212,14 @@ export default {
       showModal: false,
       companyResult:[],
       dialogFormVisible:false,
-      newPassword:""
+      newPassword:"",
+      roleResult:[],
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children"
+      },
     };
   },
   methods: {
@@ -203,7 +236,12 @@ export default {
 
       formData.append("userName", self.queryModel.userName);
       formData.append("realName", self.queryModel.realName);
-      formData.append("companyId", self.queryModel.companyId);
+
+      if (self.queryModel.companyId != null) {
+        formData.append("companyId", self.queryModel.companyId);
+      }
+
+      formData.append("roleId", self.queryModel.roleId);
 
       if (this.field != null) {
         formData.append("field", this.field);
@@ -363,9 +401,17 @@ export default {
         self.companyResult = jsonData.data;
       }
     });
+
+    roleApi.selectAll().then(function(response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        self.roleResult = jsonData.data;
+      }
+    });
   },
   components: {
-    "user-detail": UserDetail
+    "user-detail": UserDetail,
+    "el-select-tree": SelectTree,
   }
 };
 </script>