Browse Source

Merge branch 'dev' of http://221.182.8.141:2300/wanghai/bimgis_sx into dev

zxh 1 year ago
parent
commit
7b084ccb49

+ 1 - 1
src/utils/constant.ts

@@ -6,7 +6,7 @@ import moment from 'moment'
 
 
 export const gisNames = ['spectrum', 'pipelineDefect', 'OnlineImport']
 export const gisNames = ['spectrum', 'pipelineDefect', 'OnlineImport']
 
 
-export const pageSizes = [10, 20, 30, 50, 100, 1000]
+export const pageSizes = [10, 20, 30, 50, 100, 1000, 5000]
 
 
 export const getDefaultPagination = () => ({ current: 1, size: 30 })
 export const getDefaultPagination = () => ({ current: 1, size: 30 })
 
 

+ 127 - 84
src/views/currentSystem/authorityManagement/projectManage/index.vue

@@ -8,7 +8,7 @@
             <span>项目名称:</span>
             <span>项目名称:</span>
             <el-input placeholder="请输入项目名称" size="mini" v-model="boGroup" style="width: 204px" clearable>
             <el-input placeholder="请输入项目名称" size="mini" v-model="boGroup" style="width: 204px" clearable>
             </el-input>
             </el-input>
-            <el-button style="margin-left:10px" type="primary" size="mini" @click="getlistdata()">查询</el-button>
+            <el-button style="margin-left: 10px" type="primary" size="mini" @click="getlistdata()">查询</el-button>
             <!-- <el-button type="primary" size="mini" @click="newopen()">新建项目</el-button>
             <!-- <el-button type="primary" size="mini" @click="newopen()">新建项目</el-button>
             <el-button type="primary" size="mini" @click="deleteProject()">删除项目</el-button> -->
             <el-button type="primary" size="mini" @click="deleteProject()">删除项目</el-button> -->
             <!-- <el-button type="primary" size="mini" @click="syncProject()">项目同步</el-button>
             <!-- <el-button type="primary" size="mini" @click="syncProject()">项目同步</el-button>
@@ -22,11 +22,17 @@
     </div>
     </div>
     <!-- 项目详情 -->
     <!-- 项目详情 -->
     <div class="projectBox">
     <div class="projectBox">
-      <el-row :gutter="20" style=" height:100%;margin:0px">
-        <el-col :span="12" style=" height:100%;">
+      <el-row :gutter="20" style="height: 100%; margin: 0px">
+        <el-col :span="12" style="height: 100%">
           <!-- 主项目 -->
           <!-- 主项目 -->
           <div class="grid-content bg-purple">
           <div class="grid-content bg-purple">
-            <tf-table ref="prjTb" highlight-current-row :data="tableData" @selection-change="handleSelectionChange" @row-click="details">
+            <tf-table
+              ref="prjTb"
+              highlight-current-row
+              :data="tableData"
+              @selection-change="handleSelectionChange"
+              @row-click="details"
+            >
               <el-table-column type="selection" width="55"> </el-table-column>
               <el-table-column type="selection" width="55"> </el-table-column>
               <el-table-column prop="name" label="项目名称(项目编号)" style="width: 100%">
               <el-table-column prop="name" label="项目名称(项目编号)" style="width: 100%">
                 <template slot-scope="scope">{{ scope.row.name }}({{ scope.row.code }})</template>
                 <template slot-scope="scope">{{ scope.row.name }}({{ scope.row.code }})</template>
@@ -51,13 +57,32 @@
         </el-col>
         </el-col>
         <el-col :span="12" style="height: 100%">
         <el-col :span="12" style="height: 100%">
           <!-- 项目详情 -->
           <!-- 项目详情 -->
-          <div class="grid-content test-5" style="height: calc(100% - 98px);">
-            <span style="display:block;margin-bottom:10px;">资源配置:</span>
-            <el-tree style="height:calc(100% - 30px);border:1px solid #dbe4ff;overflow:auto;" v-if="data" :data="data" show-checkbox default-expand-all node-key="id" ref="tree" highlight-current :props="defaultProps" :default-checked-keys="treeSelectKeys" @node-contextmenu="setServeIndex">
+          <div class="grid-content test-5" style="height: calc(100% - 98px)">
+            <span style="display: block; margin-bottom: 10px">资源配置:</span>
+            <el-tree
+              style="height: calc(100% - 30px); border: 1px solid #dbe4ff; overflow: auto"
+              v-if="data"
+              :data="data"
+              show-checkbox
+              default-expand-all
+              node-key="id"
+              ref="tree"
+              highlight-current
+              :props="defaultProps"
+              :default-checked-keys="treeSelectKeys"
+              @node-contextmenu="setServeIndex"
+            >
             </el-tree>
             </el-tree>
           </div>
           </div>
           <div class="buttons">
           <div class="buttons">
-            <el-checkbox v-model="isShowServeIndex" label="显示服务序号" border size="mini" :disabled="data.length==0" @change="showServeIndex()"></el-checkbox>
+            <el-checkbox
+              v-model="isShowServeIndex"
+              label="显示服务序号"
+              border
+              size="mini"
+              :disabled="data.length == 0"
+              @change="showServeIndex()"
+            ></el-checkbox>
             <el-button type="primary" @click="getCheckedKeys" size="mini">资源配置保存</el-button>
             <el-button type="primary" @click="getCheckedKeys" size="mini">资源配置保存</el-button>
             <!-- <el-button @click="setCheckedKeys">通过 key 设置</el-button> -->
             <!-- <el-button @click="setCheckedKeys">通过 key 设置</el-button> -->
           </div>
           </div>
@@ -66,14 +91,18 @@
     </div>
     </div>
     <el-dialog title="新增项目" :visible.sync="dialogFormVisible">
     <el-dialog title="新增项目" :visible.sync="dialogFormVisible">
       <el-form :model="form">
       <el-form :model="form">
-        <el-form-item label="项目编码" :label-width="formLabelWidth" :rules="[
-     { required: true, message: '请输入项目编码', trigger: 'blur' },
-    ]">
+        <el-form-item
+          label="项目编码"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '请输入项目编码', trigger: 'blur' }]"
+        >
           <el-input v-model="form.code" placeholder="请输入项目编码" autocomplete="off"></el-input>
           <el-input v-model="form.code" placeholder="请输入项目编码" autocomplete="off"></el-input>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="项目全称" :label-width="formLabelWidth" :rules="[
-     { required: true, message: '请输入项目全称', trigger: 'blur' },
-    ]">
+        <el-form-item
+          label="项目全称"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '请输入项目全称', trigger: 'blur' }]"
+        >
           <el-input v-model="form.name" autocomplete="off" placeholder="请输入项目全称"></el-input>
           <el-input v-model="form.name" autocomplete="off" placeholder="请输入项目全称"></el-input>
         </el-form-item>
         </el-form-item>
 
 
@@ -90,30 +119,42 @@
           <el-input v-model="form.xmzq" autocomplete="off" placeholder="请输入项目工期"></el-input>
           <el-input v-model="form.xmzq" autocomplete="off" placeholder="请输入项目工期"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="项目介绍" :label-width="formLabelWidth">
         <el-form-item label="项目介绍" :label-width="formLabelWidth">
-          <el-input type="textarea" v-model="form.xmjs" autocomplete="off" placeholder="请输入项目介绍" :autosize="{ minRows: 5}"></el-input>
+          <el-input
+            type="textarea"
+            v-model="form.xmjs"
+            autocomplete="off"
+            placeholder="请输入项目介绍"
+            :autosize="{ minRows: 5 }"
+          ></el-input>
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
       <div slot="footer" class="dialog-footer">
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取 消</el-button>
         <el-button @click="dialogFormVisible = false">取 消</el-button>
-        <el-button type="primary" @click="addProject() ">确 定</el-button>
+        <el-button type="primary" @click="addProject()">确 定</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
     <el-dialog title="初始位置" :visible.sync="dialogFormVisible2">
     <el-dialog title="初始位置" :visible.sync="dialogFormVisible2">
       <el-form :model="form2">
       <el-form :model="form2">
-        <el-form-item label="经度" :label-width="formLabelWidth" :rules="[
-     { required: true, message: '请输入经度', trigger: 'blur' },
-    ]">
+        <el-form-item
+          label="经度"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '请输入经度', trigger: 'blur' }]"
+        >
           <el-input v-model="form2.lon" placeholder="请输入经度" autocomplete="off"></el-input>
           <el-input v-model="form2.lon" placeholder="请输入经度" autocomplete="off"></el-input>
         </el-form-item>
         </el-form-item>
 
 
-        <el-form-item label="纬度" :label-width="formLabelWidth" :rules="[
-     { required: true, message: '请输入纬度', trigger: 'blur' },
-    ]">
+        <el-form-item
+          label="纬度"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '请输入纬度', trigger: 'blur' }]"
+        >
           <el-input v-model="form2.lat" autocomplete="off" placeholder="请输入项目全称"></el-input>
           <el-input v-model="form2.lat" autocomplete="off" placeholder="请输入项目全称"></el-input>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="相机高度" :label-width="formLabelWidth" :rules="[
-     { required: true, message: '请输入相机高度', trigger: 'blur' },
-    ]">
+        <el-form-item
+          label="相机高度"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '请输入相机高度', trigger: 'blur' }]"
+        >
           <el-input v-model="form2.height" autocomplete="off" placeholder="请输入相机高度"></el-input>
           <el-input v-model="form2.height" autocomplete="off" placeholder="请输入相机高度"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="空间数据库" :label-width="formLabelWidth">
         <el-form-item label="空间数据库" :label-width="formLabelWidth">
@@ -128,7 +169,7 @@
       </el-form>
       </el-form>
       <div slot="footer" class="dialog-footer">
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible2 = false">取 消</el-button>
         <el-button @click="dialogFormVisible2 = false">取 消</el-button>
-        <el-button type="primary" @click="putInitial() ">确 定</el-button>
+        <el-button type="primary" @click="putInitial()">确 定</el-button>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
     <el-dialog title="工艺配置" :visible.sync="dialogFormVisible3" width="25%">
     <el-dialog title="工艺配置" :visible.sync="dialogFormVisible3" width="25%">
@@ -137,17 +178,15 @@
           <el-input v-model="form3.name" placeholder="请输入项目全称" autocomplete="off"></el-input>
           <el-input v-model="form3.name" placeholder="请输入项目全称" autocomplete="off"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="工艺分组:" :label-width="formLabelWidth">
         <el-form-item label="工艺分组:" :label-width="formLabelWidth">
-          <el-select v-model="processValue" placeholder="请选择" style="width:100%" @change="processChange($event)">
-            <el-option v-for="item in processOptions" :key="item.id" :label="item.value" :value="item.id">
-            </el-option>
+          <el-select v-model="processValue" placeholder="请选择" style="width: 100%" @change="processChange($event)">
+            <el-option v-for="item in processOptions" :key="item.id" :label="item.value" :value="item.id"> </el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="选择工艺:" :label-width="formLabelWidth" v-show="checkItems.length!=0">
+        <el-form-item label="选择工艺:" :label-width="formLabelWidth" v-show="checkItems.length != 0">
           <el-checkbox-group v-model="checkedConfig">
           <el-checkbox-group v-model="checkedConfig">
-            <el-checkbox v-for="item in checkItems" :key="item.id" :label="item.id">{{item.name}}</el-checkbox>
+            <el-checkbox v-for="item in checkItems" :key="item.id" :label="item.id">{{ item.name }}</el-checkbox>
           </el-checkbox-group>
           </el-checkbox-group>
         </el-form-item>
         </el-form-item>
-
       </el-form>
       </el-form>
       <div slot="footer" class="dialog-footer">
       <div slot="footer" class="dialog-footer">
         <el-button @click="closeProcessConfig()">取 消</el-button>
         <el-button @click="closeProcessConfig()">取 消</el-button>
@@ -159,17 +198,20 @@
         <el-form-item label="服务名称:" :label-width="formLabelWidth">
         <el-form-item label="服务名称:" :label-width="formLabelWidth">
           <el-input v-model="form4.name" placeholder="请输入项目全称" autocomplete="off" disabled></el-input>
           <el-input v-model="form4.name" placeholder="请输入项目全称" autocomplete="off" disabled></el-input>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="服务序号:" :label-width="formLabelWidth" :rules="[
-     { required: true, message: '请输入服务序号', trigger: 'blur' },
-    ]">
+        <el-form-item
+          label="服务序号:"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '请输入服务序号', trigger: 'blur' }]"
+        >
           <el-input v-model="form4.sort" placeholder="请输入序号" autocomplete="off"></el-input>
           <el-input v-model="form4.sort" placeholder="请输入序号" autocomplete="off"></el-input>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="分组名称:" :label-width="formLabelWidth" :rules="[
-     { required: true, message: '请输入分组名称', trigger: 'blur' },
-    ]">
+        <el-form-item
+          label="分组名称:"
+          :label-width="formLabelWidth"
+          :rules="[{ required: true, message: '请输入分组名称', trigger: 'blur' }]"
+        >
           <el-input v-model.trim="form4.groupname" placeholder="请输入分组名称" autocomplete="off"></el-input>
           <el-input v-model.trim="form4.groupname" placeholder="请输入分组名称" autocomplete="off"></el-input>
         </el-form-item>
         </el-form-item>
-
       </el-form>
       </el-form>
       <div slot="footer" class="dialog-footer">
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible4 = false">取 消</el-button>
         <el-button @click="dialogFormVisible4 = false">取 消</el-button>
@@ -179,9 +221,8 @@
     <el-dialog title="区域绑定" :visible.sync="dialogOrgFormVisible" width="25%">
     <el-dialog title="区域绑定" :visible.sync="dialogOrgFormVisible" width="25%">
       <el-form :model="formOrg">
       <el-form :model="formOrg">
         <el-form-item label="区域总部:" :label-width="formLabelWidth">
         <el-form-item label="区域总部:" :label-width="formLabelWidth">
-          <el-select v-model="formOrg.orgId" placeholder="请选择" style="width:100%">
-            <el-option v-for="item in orgOptions" :key="item.id" :label="item.orgName" :value="item.id">
-            </el-option>
+          <el-select v-model="formOrg.orgId" placeholder="请选择" style="width: 100%">
+            <el-option v-for="item in orgOptions" :key="item.id" :label="item.orgName" :value="item.id"> </el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
@@ -194,7 +235,7 @@
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
-import axios from 'axios'
+import request from '@/utils/request'
 import {
 import {
   postPrjSubList_api,
   postPrjSubList_api,
   syncProject_api,
   syncProject_api,
@@ -248,13 +289,13 @@ export default {
         id: '',
         id: '',
         lat: '',
         lat: '',
         height: '',
         height: '',
-        dataUser:'',
-        wkid:'',
-        pbsModel:null
+        dataUser: '',
+        wkid: '',
+        pbsModel: null
       },
       },
       formLabelWidth: '120px',
       formLabelWidth: '120px',
       dialogFormVisible3: false,
       dialogFormVisible3: false,
-      dialogOrgFormVisible:false,
+      dialogOrgFormVisible: false,
       form3: {
       form3: {
         name: ''
         name: ''
       },
       },
@@ -271,10 +312,10 @@ export default {
         groupname: '',
         groupname: '',
         id: ''
         id: ''
       },
       },
-      formOrg:{
-        orgId:''
+      formOrg: {
+        orgId: ''
       },
       },
-      orgOptions:[]
+      orgOptions: []
     }
     }
   },
   },
 
 
@@ -293,13 +334,13 @@ export default {
       let { code, result } = res
       let { code, result } = res
       if (code === 1) {
       if (code === 1) {
         this.tableData = result.records
         this.tableData = result.records
-        this.$nextTick(()=>{
-          if(this.tableData.length>0){//默认选择第一行
-            this.details(this.tableData[0]);
-            console.log(this.$refs.prjTb);
-            this.$refs.prjTb.$refs.table.setCurrentRow(this.tableData[0]);
+        this.$nextTick(() => {
+          if (this.tableData.length > 0) {
+            //默认选择第一行
+            this.details(this.tableData[0])
+            console.log(this.$refs.prjTb)
+            this.$refs.prjTb.$refs.table.setCurrentRow(this.tableData[0])
           }
           }
-          
         })
         })
       }
       }
     },
     },
@@ -410,7 +451,7 @@ export default {
     },
     },
     //  勾选框
     //  勾选框
     handleSelectionChange(val) {
     handleSelectionChange(val) {
-      debugger;
+      debugger
       if (val.length != 0) {
       if (val.length != 0) {
         this.form2.id = val[0].id
         this.form2.id = val[0].id
         this.multipleSelection = val
         this.multipleSelection = val
@@ -427,7 +468,7 @@ export default {
           lat: 40.960521,
           lat: 40.960521,
           height: 10000000.0
           height: 10000000.0
         }
         }
-        const project=this.multipleSelection[0];
+        const project = this.multipleSelection[0]
         const position = project['geo_info']
         const position = project['geo_info']
         if (!position) {
         if (!position) {
           this.form2.lon = china.lon
           this.form2.lon = china.lon
@@ -444,9 +485,9 @@ export default {
             this.form2.lat = china.lat
             this.form2.lat = china.lat
             this.form2.height = china.height
             this.form2.height = china.height
           }
           }
-          this.form2.dataUser=project.dataUser;
-          this.form2.wkid=project.wkid;
-          this.form2.pbsModel=project.pbsModel;
+          this.form2.dataUser = project.dataUser
+          this.form2.wkid = project.wkid
+          this.form2.pbsModel = project.pbsModel
         }
         }
       } else {
       } else {
         this.$message('请勾选一个项目!')
         this.$message('请勾选一个项目!')
@@ -468,9 +509,9 @@ export default {
           lat: lat,
           lat: lat,
           height: height
           height: height
         }),
         }),
-        dataUser:this.form2.dataUser,
-        wkid:this.form2.wkid,
-        pbsModel:this.form2.pbsModel
+        dataUser: this.form2.dataUser,
+        wkid: this.form2.wkid,
+        pbsModel: this.form2.pbsModel
       }
       }
       putPrjList_api(data)
       putPrjList_api(data)
         .then((res) => {
         .then((res) => {
@@ -579,7 +620,7 @@ export default {
     /**
     /**
      * 项目绑定区域
      * 项目绑定区域
      */
      */
-    orgprj(){
+    orgprj() {
       if (this.multipleSelection.length == 0) {
       if (this.multipleSelection.length == 0) {
         this.$message('请选择一行数据进行区域绑定')
         this.$message('请选择一行数据进行区域绑定')
         return
         return
@@ -591,7 +632,7 @@ export default {
       this.processOptions = []
       this.processOptions = []
       this.checkedConfig = []
       this.checkedConfig = []
       let datas = this.multipleSelection[0]
       let datas = this.multipleSelection[0]
-     
+
       getOrglist_api({})
       getOrglist_api({})
         .then((res) => {
         .then((res) => {
           const results = res
           const results = res
@@ -602,22 +643,24 @@ export default {
           console.log(err)
           console.log(err)
         })
         })
     },
     },
-    setOrgPrj(){
-      const prjid=this.form2.id;
-      const orgid=this.formOrg.orgId;
-      const data={
+    setOrgPrj() {
+      const prjid = this.form2.id
+      const orgid = this.formOrg.orgId
+      const data = {
         prjId: prjid,
         prjId: prjid,
         orgId: orgid
         orgId: orgid
       }
       }
-      getOrgPrj_api(data).then(result=>{
-        if(result.code===1){
-          this.$message.success('区域绑定成功');
-          this.dialogOrgFormVisible=false;
-        }
-      }).catch((err) => {
-        this.$message.error('区域绑定失败');
-        console.log(err)
-      })
+      getOrgPrj_api(data)
+        .then((result) => {
+          if (result.code === 1) {
+            this.$message.success('区域绑定成功')
+            this.dialogOrgFormVisible = false
+          }
+        })
+        .catch((err) => {
+          this.$message.error('区域绑定失败')
+          console.log(err)
+        })
     },
     },
     submitConfig() {
     submitConfig() {
       let checkString = []
       let checkString = []
@@ -705,11 +748,11 @@ export default {
           sourceId: sourceId
           sourceId: sourceId
         }
         }
       ]
       ]
-      axios.defaults.baseURL = '/api'
-      axios({
-        headers: {
-          'Content-Type': 'application/json;charset=UTF-8'
-        },
+      // axios.defaults.baseURL = '/api'
+      request({
+        // headers: {
+        //   'Content-Type': 'application/json;charset=UTF-8'
+        // },
         method: 'post',
         method: 'post',
         url: '/tofly-base/prjsource/updateSort',
         url: '/tofly-base/prjsource/updateSort',
         data: JSON.stringify(data)
         data: JSON.stringify(data)

+ 41 - 28
src/views/pipelineDefect/manage/defect/widget.vue

@@ -46,7 +46,7 @@
             <el-option v-for="(item, i) in gradeArr" :key="i" :label="item" :value="item"></el-option>
             <el-option v-for="(item, i) in gradeArr" :key="i" :label="item" :value="item"></el-option>
           </el-select> -->
           </el-select> -->
           <div class="title">缺陷等级:</div>
           <div class="title">缺陷等级:</div>
-          <el-select clearable v-model="searchValue.defectLevel" placeholder="全部">
+          <el-select style="width: 120px" clearable v-model="searchValue.defectLevel" placeholder="全部">
             <el-option v-for="(item, i) in defectLevel" :key="i" :label="item" :value="item"></el-option>
             <el-option v-for="(item, i) in defectLevel" :key="i" :label="item" :value="item"></el-option>
           </el-select>
           </el-select>
           <!-- <div class="title">功能性缺陷等级:</div>
           <!-- <div class="title">功能性缺陷等级:</div>
@@ -85,7 +85,7 @@
         :row-style="{ height: '40px' }"
         :row-style="{ height: '40px' }"
       >
       >
         <template slot="empty">
         <template slot="empty">
-          <img src="@/assets/icon/null.png"   />
+          <img src="@/assets/icon/null.png" />
         </template>
         </template>
         <el-table-column header-align="center" align="center" type="selection" width="55"> </el-table-column>
         <el-table-column header-align="center" align="center" type="selection" width="55"> </el-table-column>
         <el-table-column align="center" type="index" label="序号" width="50"> </el-table-column>
         <el-table-column align="center" type="index" label="序号" width="50"> </el-table-column>
@@ -106,14 +106,22 @@
             <div style="text-align: center">{{ `(${scope.row.defectCode})${scope.row.defectName}` }}</div>
             <div style="text-align: center">{{ `(${scope.row.defectCode})${scope.row.defectName}` }}</div>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column header-align="center" width="200" label="管道内部状况描述" align="center" show-overflow-tooltip>
+        <el-table-column
+          header-align="center"
+          width="200"
+          label="管道内部状况描述"
+          align="center"
+          show-overflow-tooltip
+        >
           <template slot-scope="scope">
           <template slot-scope="scope">
             <div style="text-align: center">{{ scope.row.pipeNote }}</div>
             <div style="text-align: center">{{ scope.row.pipeNote }}</div>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         <el-table-column fixed="right" width="120" header-align="center" label="操作" align="center">
         <el-table-column fixed="right" width="120" header-align="center" label="操作" align="center">
           <template slot-scope="scope">
           <template slot-scope="scope">
-            <el-button type="text" :disabled="!scope.row.videopath" size="small" @click.stop="toVideo(scope.row)">视频</el-button>
+            <el-button type="text" :disabled="!scope.row.videopath" size="small" @click.stop="toVideo(scope.row)"
+              >视频</el-button
+            >
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         <!-- <el-table-column fixed="right" header-align="center" label="操作" align="center" width="100">
         <!-- <el-table-column fixed="right" header-align="center" label="操作" align="center" width="100">
@@ -136,10 +144,17 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <el-dialog width='70%' top="5vh" :title="videoTitle" v-if="showVideo" :visible.sync="showVideo" :append-to-body="true">
+    <el-dialog
+      width="70%"
+      top="5vh"
+      :title="videoTitle"
+      v-if="showVideo"
+      :visible.sync="showVideo"
+      :append-to-body="true"
+    >
       <div style="width: 100%; height: 80%">
       <div style="width: 100%; height: 80%">
         <video controls="controls" width="100%" height="83%">
         <video controls="controls" width="100%" height="83%">
-            <source :src="videoUrl" type="video/mp4" />
+          <source :src="videoUrl" type="video/mp4" />
         </video>
         </video>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
@@ -183,20 +198,20 @@ export default {
   data() {
   data() {
     return {
     return {
       json_fields: {
       json_fields: {
-        '管段编号': 'expNo',
-        '管段类型': 'pipeType',
+        管段编号: 'expNo',
+        管段类型: 'pipeType',
         '管径(mm)': 'diameter',
         '管径(mm)': 'diameter',
-        '材质': 'material',
-        '检测方向': 'detectDir',
+        材质: 'material',
+        检测方向: 'detectDir',
         '距离(m)': 'checkLength',
         '距离(m)': 'checkLength',
-        '分值': 'defectNum',
-        '等级': 'defectLevel',
-        '检测视频': 'videoFileName',
-        '工程名称': 'prjName',
-        '工程地点': 'checkAddress',
+        分值: 'defectNum',
+        等级: 'defectLevel',
+        检测视频: 'videoFileName',
+        工程名称: 'prjName',
+        工程地点: 'checkAddress',
         // '检测日期': 'sampleTime',
         // '检测日期': 'sampleTime',
-        '管道内部状况描述': 'structEstimate',
-        '缺陷名称代码': 'defectCode'
+        管道内部状况描述: 'structEstimate',
+        缺陷名称代码: 'defectCode'
       },
       },
       currentId: null,
       currentId: null,
       id: null,
       id: null,
@@ -264,13 +279,13 @@ export default {
         { width: '80', sortable: true, label: '分值', name: 'defectNum' },
         { width: '80', sortable: true, label: '分值', name: 'defectNum' },
         { width: '100', sortable: true, label: '等级', name: 'defectLevel' },
         { width: '100', sortable: true, label: '等级', name: 'defectLevel' },
         { width: '100', sortable: false, label: '工程名称', name: 'prjName' },
         { width: '100', sortable: false, label: '工程名称', name: 'prjName' },
-        { width: '', sortable: false, label: '工程地点', name: 'checkAddress' },
+        { width: '', sortable: false, label: '工程地点', name: 'checkAddress' }
         // { width: '100', sortable: true, label: '检测日期', name: 'sampleTime' }
         // { width: '100', sortable: true, label: '检测日期', name: 'sampleTime' }
         // { label: '结构性缺陷评价', name: 'structEstimate' },
         // { label: '结构性缺陷评价', name: 'structEstimate' },
         // { label: '检测地点', name: 'checkAddress' },
         // { label: '检测地点', name: 'checkAddress' },
       ],
       ],
       // gradeArr: ['Ⅰ', 'Ⅱ', 'Ⅲ', 'Ⅳ'], // 缺陷等级
       // gradeArr: ['Ⅰ', 'Ⅱ', 'Ⅲ', 'Ⅳ'], // 缺陷等级
-      defectLevel: ['一级', '二级', '三级', '四级'], 
+      defectLevel: ['一级', '二级', '三级', '四级'],
       // 日期选择器规则
       // 日期选择器规则
       sOpition: {
       sOpition: {
         disabledDate: (time) => {
         disabledDate: (time) => {
@@ -317,10 +332,10 @@ export default {
       clickEvent: null,
       clickEvent: null,
       projUtil: null,
       projUtil: null,
       currentDataProjName: appconfig.currPRJ,
       currentDataProjName: appconfig.currPRJ,
-      // 
+      //
       hadLoad: false,
       hadLoad: false,
       popup: null,
       popup: null,
-      // 
+      //
       showVideo: false,
       showVideo: false,
       videoUrl: '',
       videoUrl: '',
       videoTitle: '视频',
       videoTitle: '视频',
@@ -329,10 +344,8 @@ export default {
       themLayer: null
       themLayer: null
     }
     }
   },
   },
-  watch: {
-  },
-  created() {
-  },
+  watch: {},
+  created() {},
   mounted() {
   mounted() {
     this.upDateTable()
     this.upDateTable()
   },
   },
@@ -351,7 +364,7 @@ export default {
         })
         })
       }
       }
     },
     },
-    toVideo (row) {
+    toVideo(row) {
       let { videopath, videoFileName } = row
       let { videopath, videoFileName } = row
       if (!videopath) return this.$message.warning('暂无视频')
       if (!videopath) return this.$message.warning('暂无视频')
       let address = baseAddress + '/psjc/file' + videopath
       let address = baseAddress + '/psjc/file' + videopath
@@ -468,7 +481,7 @@ export default {
     // 表格多选事件
     // 表格多选事件
     handleSelectionChange(val) {
     handleSelectionChange(val) {
       console.log('缺陷')
       console.log('缺陷')
-      this.multipleSelection = val.map(item => {
+      this.multipleSelection = val.map((item) => {
         return { ...item, defectCode: `(${item.defectCode})${item.defectName}` }
         return { ...item, defectCode: `(${item.defectCode})${item.defectName}` }
       })
       })
     },
     },
@@ -511,7 +524,7 @@ export default {
   box-sizing: border-box;
   box-sizing: border-box;
   position: relative;
   position: relative;
   font-size: 12px;
   font-size: 12px;
-    /deep/.el-table .el-table__cell {
+  /deep/.el-table .el-table__cell {
     padding: 0;
     padding: 0;
   }
   }
   // 卡片样式
   // 卡片样式

+ 73 - 53
src/views/pipelineDefect/manage/evaluate/widget.vue

@@ -42,11 +42,11 @@
             </el-row>
             </el-row>
           </div> -->
           </div> -->
           <div class="title">结构性缺陷等级:</div>
           <div class="title">结构性缺陷等级:</div>
-          <el-select clearable v-model="searchValue.structClass" placeholder="全部">
+          <el-select style="width: 120px" clearable v-model="searchValue.structClass" placeholder="全部">
             <el-option v-for="(item, i) in gradeArr" :key="i" :label="item" :value="item"></el-option>
             <el-option v-for="(item, i) in gradeArr" :key="i" :label="item" :value="item"></el-option>
           </el-select>
           </el-select>
           <div class="title">功能性缺陷等级:</div>
           <div class="title">功能性缺陷等级:</div>
-          <el-select clearable v-model="searchValue.funcClass" placeholder="全部">
+          <el-select style="width: 120px" clearable v-model="searchValue.funcClass" placeholder="全部">
             <el-option v-for="(item, i) in gradeArr" :key="i" :label="item" :value="item"></el-option>
             <el-option v-for="(item, i) in gradeArr" :key="i" :label="item" :value="item"></el-option>
           </el-select>
           </el-select>
           <el-button size="small" style="margin-left: 26px" type="primary" @click="searchApi"> 搜索 </el-button>
           <el-button size="small" style="margin-left: 26px" type="primary" @click="searchApi"> 搜索 </el-button>
@@ -62,9 +62,10 @@
             name="管道评估结果表单.xls"
             name="管道评估结果表单.xls"
             type="xls"
             type="xls"
           >
           >
-            <el-button size="small" type="primary">导出
+            <el-button size="small" type="primary"
+              >导出
               <!-- <i class="el-icon-download el-icon--right"></i> -->
               <!-- <i class="el-icon-download el-icon--right"></i> -->
-              </el-button>
+            </el-button>
           </download-excel>
           </download-excel>
         </div>
         </div>
       </div>
       </div>
@@ -82,7 +83,7 @@
         :default-sort="{ prop: 'date', order: 'descending' }"
         :default-sort="{ prop: 'date', order: 'descending' }"
       >
       >
         <template slot="empty">
         <template slot="empty">
-          <img src="@/assets/icon/null.png"   />
+          <img src="@/assets/icon/null.png" />
         </template>
         </template>
         <el-table-column header-align="center" align="center" type="selection" width="55"> </el-table-column>
         <el-table-column header-align="center" align="center" type="selection" width="55"> </el-table-column>
         <el-table-column header-align="center" align="center" type="index" label="序号" width="50"> </el-table-column>
         <el-table-column header-align="center" align="center" type="index" label="序号" width="50"> </el-table-column>
@@ -100,7 +101,9 @@
         </el-table-column>
         </el-table-column>
         <el-table-column fixed="right" header-align="center" label="操作" align="center" width="150">
         <el-table-column fixed="right" header-align="center" label="操作" align="center" width="150">
           <template slot-scope="scope">
           <template slot-scope="scope">
-            <el-button type="text" size="small" :disabled="!scope.row.videopath" @click.stop="toVideo(scope.row)">视频</el-button>
+            <el-button type="text" size="small" :disabled="!scope.row.videopath" @click.stop="toVideo(scope.row)"
+              >视频</el-button
+            >
             <!-- <el-button type="text" size="small"  @click.stop="toPdfPage(scope.row.pdfFilePath)">报告</el-button> -->
             <!-- <el-button type="text" size="small"  @click.stop="toPdfPage(scope.row.pdfFilePath)">报告</el-button> -->
             <el-button type="text" size="small" @click.stop="openDetails(scope.row)">详情</el-button>
             <el-button type="text" size="small" @click.stop="openDetails(scope.row)">详情</el-button>
           </template>
           </template>
@@ -174,7 +177,7 @@
                 <div class="right" style="width: 250px; margin-left: 20px; min-height: 240px">
                 <div class="right" style="width: 250px; margin-left: 20px; min-height: 240px">
                   <el-tabs v-model="activeName">
                   <el-tabs v-model="activeName">
                     <!-- <el-tab-pane :label="`照片(${getCurrentForm.pipeDefects.length || 0})`" name="picnum"> -->
                     <!-- <el-tab-pane :label="`照片(${getCurrentForm.pipeDefects.length || 0})`" name="picnum"> -->
-                      <el-tab-pane :label="`照片`" name="picnum">
+                    <el-tab-pane :label="`照片`" name="picnum">
                       <div class="container">
                       <div class="container">
                         <el-image
                         <el-image
                           style="width: 100%; height: 90%; -webkit-user-drag: none"
                           style="width: 100%; height: 90%; -webkit-user-drag: none"
@@ -210,10 +213,17 @@
       </div>
       </div>
     </transition>
     </transition>
     <!-- 视频 -->
     <!-- 视频 -->
-    <el-dialog width='70%' top="5vh" :title="videoTitle" v-if="showVideo" :visible.sync="showVideo" :append-to-body="true">
+    <el-dialog
+      width="70%"
+      top="5vh"
+      :title="videoTitle"
+      v-if="showVideo"
+      :visible.sync="showVideo"
+      :append-to-body="true"
+    >
       <div style="width: 100%; height: 80%">
       <div style="width: 100%; height: 80%">
         <video controls="controls" width="100%" height="83%">
         <video controls="controls" width="100%" height="83%">
-            <source :src="videoUrl" type="video/mp4" />
+          <source :src="videoUrl" type="video/mp4" />
         </video>
         </video>
       </div>
       </div>
     </el-dialog>
     </el-dialog>
@@ -222,7 +232,12 @@
 
 
 <script>
 <script>
 import JsonExcel from 'vue-json-excel'
 import JsonExcel from 'vue-json-excel'
-import { getDefectData, queryPageAssessment, downloadFile, histroyPipeData } from '@/views/pipelineDefect/api/pipelineDefect'
+import {
+  getDefectData,
+  queryPageAssessment,
+  downloadFile,
+  histroyPipeData
+} from '@/views/pipelineDefect/api/pipelineDefect'
 import { projUtil } from '@/views/pipelineDefect/common/proj'
 import { projUtil } from '@/views/pipelineDefect/common/proj'
 
 
 // 引入公共ip地址
 // 引入公共ip地址
@@ -246,19 +261,19 @@ export default {
   data() {
   data() {
     return {
     return {
       json_fields: {
       json_fields: {
-        '工程名称': 'prjName',
-        '管段编号': 'expNo',
-        '管段类型': 'pipeType',
+        工程名称: 'prjName',
+        管段编号: 'expNo',
+        管段类型: 'pipeType',
         '管径(mm)': 'diameter',
         '管径(mm)': 'diameter',
-        '材质': 'material',
-        '结构性缺陷评价': 'structEstimate',
-        '缺陷数量': 'defectnum',
-        '检测照片': 'picnum',
-        '检测视频': 'videoFileName',
-        '检测地点': 'checkAddress',
+        材质: 'material',
+        结构性缺陷评价: 'structEstimate',
+        缺陷数量: 'defectnum',
+        检测照片: 'picnum',
+        检测视频: 'videoFileName',
+        检测地点: 'checkAddress',
         // '检测日期': 'sampleTime',
         // '检测日期': 'sampleTime',
-        '结构性缺陷等级': 'structClass',
-        '功能性缺陷等级': 'funcClass'
+        结构性缺陷等级: 'structClass',
+        功能性缺陷等级: 'funcClass'
       },
       },
       id: null, // 当前列表id
       id: null, // 当前列表id
       activeName: 'picnum', // 照片视频tab标签
       activeName: 'picnum', // 照片视频tab标签
@@ -309,7 +324,7 @@ export default {
         { width: '150', sortable: true, label: '结构性缺陷等级', name: 'structClass' },
         { width: '150', sortable: true, label: '结构性缺陷等级', name: 'structClass' },
         { width: '150', sortable: true, label: '功能性缺陷等级', name: 'funcClass' },
         { width: '150', sortable: true, label: '功能性缺陷等级', name: 'funcClass' },
         { width: '200', sortable: false, label: '结构性缺陷评价', name: 'structEstimate' },
         { width: '200', sortable: false, label: '结构性缺陷评价', name: 'structEstimate' },
-        { width: '200', sortable: false, label: '功能性缺陷评价', name: 'funcEstimate' },
+        { width: '200', sortable: false, label: '功能性缺陷评价', name: 'funcEstimate' }
         // { width: '100', sortable: true, label: '检测日期', name: 'sampleTime' },
         // { width: '100', sortable: true, label: '检测日期', name: 'sampleTime' },
       ],
       ],
       gradeArr: ['Ⅰ', 'Ⅱ', 'Ⅲ', 'Ⅳ'], // 缺陷等级
       gradeArr: ['Ⅰ', 'Ⅱ', 'Ⅲ', 'Ⅳ'], // 缺陷等级
@@ -359,7 +374,7 @@ export default {
       currentDataProjName: appconfig.currPRJ, // 当前坐标系
       currentDataProjName: appconfig.currPRJ, // 当前坐标系
       popup: null,
       popup: null,
       hasLoad: false,
       hasLoad: false,
-      // 
+      //
       showVideo: false,
       showVideo: false,
       videoUrl: '',
       videoUrl: '',
       videoTitle: '视频',
       videoTitle: '视频',
@@ -369,15 +384,12 @@ export default {
       themLayer: null
       themLayer: null
     }
     }
   },
   },
-  watch: {
-  },
+  watch: {},
   mounted() {
   mounted() {
-      this.upDateTable()
-  },
-  destroyed() {
-  },
-  computed: {
+    this.upDateTable()
   },
   },
+  destroyed() {},
+  computed: {},
   methods: {
   methods: {
     sDateChange(t) {
     sDateChange(t) {
       console.log('起始时间变化')
       console.log('起始时间变化')
@@ -394,11 +406,11 @@ export default {
         })
         })
       }
       }
     },
     },
-    rect () {
+    rect() {
       this.removeEvent()
       this.removeEvent()
       this.drawer = new iDraw(this.map, 'rect', {
       this.drawer = new iDraw(this.map, 'rect', {
         showCloser: false,
         showCloser: false,
-        endDrawCallBack: fea => {
+        endDrawCallBack: (fea) => {
           this.addEvent()
           this.addEvent()
           this.drawer.remove()
           this.drawer.remove()
           this.drawFea = fea
           this.drawFea = fea
@@ -485,7 +497,7 @@ export default {
     closePromptBox() {
     closePromptBox() {
       this.currentInfoCard = false
       this.currentInfoCard = false
     },
     },
-    toVideo (row) {
+    toVideo(row) {
       console.log('暂无视频')
       console.log('暂无视频')
       let { videopath, videoFileName } = row
       let { videopath, videoFileName } = row
       if (!videopath) return this.$message.warning('暂无视频')
       if (!videopath) return this.$message.warning('暂无视频')
@@ -570,8 +582,8 @@ export default {
     async openDetails(row) {
     async openDetails(row) {
       console.log('详情')
       console.log('详情')
       this.id = row.id
       this.id = row.id
-          this.data.that.setDefectId(row.id)
-          this.data.that.setDetailVisible(true)
+      this.data.that.setDefectId(row.id)
+      this.data.that.setDetailVisible(true)
     },
     },
     // 重置
     // 重置
     resetBtn() {
     resetBtn() {
@@ -596,16 +608,18 @@ export default {
         structClass: this.searchValue.structClass,
         structClass: this.searchValue.structClass,
         queryText: this.searchValue.queryParams,
         queryText: this.searchValue.queryParams,
         endDate: this.searchValue.finishDate,
         endDate: this.searchValue.finishDate,
-        startDate: this.searchValue.startDate,
+        startDate: this.searchValue.startDate
       })
       })
       console.log(this.searchValue)
       console.log(this.searchValue)
     },
     },
-    
+
     // 搜索地图
     // 搜索地图
-    searchMap (filterObj) {
+    searchMap(filterObj) {
       console.log('过滤条件', filterObj)
       console.log('过滤条件', filterObj)
       let features = this.vectorLayer.getSource().getFeatures()
       let features = this.vectorLayer.getSource().getFeatures()
-      features = features.filter(fea => filter(fea)).map(fea => new Feature({ geometry: fea.getGeometry().clone() }))
+      features = features
+        .filter((fea) => filter(fea))
+        .map((fea) => new Feature({ geometry: fea.getGeometry().clone() }))
 
 
       let source = this.lightLayer.getSource()
       let source = this.lightLayer.getSource()
       source.clear()
       source.clear()
@@ -617,14 +631,17 @@ export default {
         view.setCenter(center)
         view.setCenter(center)
         view.setZoom(17)
         view.setZoom(17)
       }
       }
-      function filter (fea) {
-        let expNo = fea.get('expNo'), 
-            material = fea.get('material'), 
-            funcClass = fea.get('funcClass'), 
-            structClass = fea.get('structClass'),
-            date = fea.get('sampleTime');
+      function filter(fea) {
+        let expNo = fea.get('expNo'),
+          material = fea.get('material'),
+          funcClass = fea.get('funcClass'),
+          structClass = fea.get('structClass'),
+          date = fea.get('sampleTime')
         if (filterObj.queryText) {
         if (filterObj.queryText) {
-          if (!expNo.toLowerCase().includes(filterObj.queryText.toLowerCase()) && !material.includes(filterObj.queryText)) {
+          if (
+            !expNo.toLowerCase().includes(filterObj.queryText.toLowerCase()) &&
+            !material.includes(filterObj.queryText)
+          ) {
             return false
             return false
           }
           }
         }
         }
@@ -642,9 +659,13 @@ export default {
           if (endDate === startDate) {
           if (endDate === startDate) {
             return date === endDate
             return date === endDate
           } else {
           } else {
-            return (!startDate ? true : new Date(date) >= new Date(filterObj.startDate)) && (!endDate ? true : new Date(date) <= new Date(filterObj.endDate))
+            return (
+              (!startDate ? true : new Date(date) >= new Date(filterObj.startDate)) &&
+              (!endDate ? true : new Date(date) <= new Date(filterObj.endDate))
+            )
           }
           }
-        } return true
+        }
+        return true
       }
       }
     },
     },
 
 
@@ -684,7 +705,6 @@ export default {
 </script>
 </script>
 
 
 <style lang="scss" scoped>
 <style lang="scss" scoped>
-
 .engineering-manage {
 .engineering-manage {
   height: 100vh;
   height: 100vh;
   margin: 0;
   margin: 0;
@@ -693,7 +713,7 @@ export default {
   position: relative;
   position: relative;
   font-size: 12px;
   font-size: 12px;
   // 卡片样式
   // 卡片样式
-    /deep/.el-table .el-table__cell {
+  /deep/.el-table .el-table__cell {
     padding: 0;
     padding: 0;
   }
   }
   /deep/ .el-dialog {
   /deep/ .el-dialog {
@@ -991,9 +1011,9 @@ export default {
     }
     }
   }
   }
 }
 }
-  /deep/.el-table .el-table__cell:not(td) {
-    padding: 0;
-  }
+/deep/.el-table .el-table__cell:not(td) {
+  padding: 0;
+}
 #popupCardEva {
 #popupCardEva {
   &::after {
   &::after {
     content: '';
     content: '';

+ 2 - 1
src/views/spectrum/configuration/api/common.ts

@@ -141,7 +141,8 @@ export interface ITeam extends ICreator, IUpdater {
   projectName: number
   projectName: number
   remarks: string
   remarks: string
   siteCount: number
   siteCount: number
-  siteIds: number[]
+  siteIds: number[],
+  groupBySiteInfoDtos: any[]
 }
 }
 
 
 export interface INeighbor extends ICreator, IUpdater {
 export interface INeighbor extends ICreator, IUpdater {

+ 35 - 32
src/views/spectrum/configuration/team/TeamForm.vue

@@ -40,42 +40,45 @@
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
-  import { Vue, Component, Prop, Watch } from 'vue-property-decorator'
-  import { ElForm } from 'element-ui/types/form'
-  import { IPoint, ITeam } from '../api/common'
+import { Vue, Component, Prop, Watch } from 'vue-property-decorator'
+import { ElForm } from 'element-ui/types/form'
+import { IPoint, ITeam } from '../api/common'
 
 
-  @Component({ name: 'TeamForm', components: {} })
-  export default class TeamForm extends Vue {
-    @Prop({ type: Object, default: () => ({}) }) data!: ITeam
-    @Prop({ type: Array, default: () => [] }) points!: IPoint[]
-    @Prop({ type: Boolean, default: false }) loading!: boolean
-    $refs!: { form: ElForm }
+@Component({ name: 'TeamForm', components: {} })
+export default class TeamForm extends Vue {
+  @Prop({ type: Object, default: () => ({}) }) data!: ITeam
+  @Prop({ type: Array, default: () => [] }) points!: IPoint[]
+  @Prop({ type: Boolean, default: false }) loading!: boolean
+  $refs!: { form: ElForm }
 
 
-    formData: Partial<ITeam> = {}
+  formData: Partial<ITeam> = {}
 
 
-    get listeners() {
-      const { submit, ...rest } = this.$listeners
-      return rest
-    }
+  get listeners() {
+    const { submit, ...rest } = this.$listeners
+    return rest
+  }
 
 
-    rules = {
-      groupByName: [
-        { required: true, message: '分组名称不能为空!', trigger: 'blur' },
-        { max: 50, message: '分组名称不超过50个字符', trigger: 'blur' }
-      ],
-      remarks: [{ required: false, message: '请输入备注', max: 255, trigger: 'blur' }]
-    }
+  rules = {
+    groupByName: [
+      { required: true, message: '分组名称不能为空!', trigger: 'blur' },
+      { max: 50, message: '分组名称不超过50个字符', trigger: 'blur' }
+    ],
+    remarks: [{ required: false, message: '请输入备注', max: 255, trigger: 'blur' }]
+  }
 
 
-    onSubmit() {
-      this.$refs.form.validate((valid) => {
-        if (valid) {
-          this.$emit('submit', this.formData)
-        }
-      })
-    }
-    @Watch('data', { immediate: true })
-    setDefaultData(val) {
-      this.formData = val.id ? { ...val } : {}
-    }
+  onSubmit() {
+    this.$refs.form.validate((valid) => {
+      if (valid) {
+        this.formData.groupBySiteInfoDtos = this.formData.siteIds.map((i) => {
+          return { siteId: i, sort: null }
+        })
+        this.$emit('submit', this.formData)
+      }
+    })
+  }
+  @Watch('data', { immediate: true })
+  setDefaultData(val) {
+    this.formData = val.id ? { ...val, siteIds: val.groupBySiteInfoDtos.map((i) => i.siteId) } : {}
   }
   }
+}
 </script>
 </script>

+ 60 - 60
src/views/spectrum/report/rainfall/widget.vue

@@ -25,82 +25,82 @@
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
-  import { Vue, Component, Prop } from 'vue-property-decorator'
-  import QueryForm from './QueryForm.vue'
-  import ImportForm from './ImportForm.vue'
-  import { getDefaultPagination } from '@/utils/constant'
-  import { rainfallCols } from '../utils'
-  import { IPagination } from '@/api/common'
-  import { importRainfall, rainFallPage } from '../api/rainfall'
-  import { IRainfall } from '../api/common'
-  import { ElUploadInternalRawFile } from 'element-ui/types/upload'
+import { Vue, Component, Prop } from 'vue-property-decorator'
+import QueryForm from './QueryForm.vue'
+import ImportForm from './ImportForm.vue'
+import { getDefaultPagination } from '@/utils/constant'
+import { rainfallCols } from '../utils'
+import { IPagination } from '@/api/common'
+import { importRainfall, rainFallPage } from '../api/rainfall'
+import { IRainfall } from '../api/common'
+import { ElUploadInternalRawFile } from 'element-ui/types/upload'
 
 
-  @Component({ name: 'Rainfall', components: { QueryForm, ImportForm } })
-  export default class Rainfall extends Vue {
-    @Prop({ type: Boolean, default: false }) isActive!: boolean
-    teamCols = rainfallCols
+@Component({ name: 'Rainfall', components: { QueryForm, ImportForm } })
+export default class Rainfall extends Vue {
+  @Prop({ type: Boolean, default: false }) isActive!: boolean
+  teamCols = rainfallCols
 
 
-    visible = false
+  visible = false
 
 
-    current: Partial<IRainfall> = {}
+  current: Partial<IRainfall> = {}
 
 
-    selected: IRainfall[] = []
+  selected: IRainfall[] = []
 
 
-    rainfallHistories: IRainfall[] = []
+  rainfallHistories: IRainfall[] = []
 
 
-    loading = { query: false, upload: false }
+  loading = { query: false, upload: false }
 
 
-    pagination: IPagination = getDefaultPagination()
+  pagination: IPagination = getDefaultPagination()
 
 
-    query = {}
+  query = {}
 
 
-    onQuery(query) {
-      this.query = { ...query }
-      this.doQuery({ current: 1 })
-    }
-
-    onUpload() {
-      this.visible = true
-    }
+  onQuery(query) {
+    this.query = { ...query }
+    this.doQuery({ current: 1 })
+  }
 
 
-    async doQuery(query = {}) {
-      this.loading.query = true
-      try {
-        const {
-          result: { records, size, total, current }
-        } = await rainFallPage({ ...this.pagination, ...this.query, ...query })
-        this.pagination = { current, size, total }
-        this.rainfallHistories = records || []
-      } catch (error) {
-        console.log(error)
-      }
-      this.loading.query = false
-    }
+  onUpload() {
+    this.visible = true
+  }
 
 
-    onPageChange(pagination) {
-      this.pagination = { ...this.pagination, ...pagination }
-      this.doQuery()
+  async doQuery(query = {}) {
+    this.loading.query = true
+    try {
+      const {
+        result: { records, size, total, current }
+      } = await rainFallPage({ ...this.pagination, ...this.query, ...query })
+      this.pagination = { current, size, total }
+      this.rainfallHistories = records || []
+    } catch (error) {
+      console.log(error)
     }
     }
+    this.loading.query = false
+  }
 
 
-    async onSubmit(file: ElUploadInternalRawFile) {
-      this.loading.upload = true
-      try {
-        const { result } = await importRainfall({ file })
-        this.$message[result ? 'success' : 'error'](`导入${result ? '成功!' : '失败!'}`)
-        this.visible = false
-        this.doQuery()
-      } catch (error) {
-        console.log(error)
-      }
-      this.loading.upload = false
-    }
+  onPageChange(pagination) {
+    this.pagination = { ...this.pagination, ...pagination }
+    this.doQuery()
+  }
 
 
-    preparing() {
+  async onSubmit(file: ElUploadInternalRawFile) {
+    this.loading.upload = true
+    try {
+      const { result } = await importRainfall({ file })
+      this.$message[result ? 'success' : 'error'](`导入${result ? '成功!' : '失败!'}`)
+      this.visible = false
       this.doQuery()
       this.doQuery()
+    } catch (error) {
+      console.log(error)
     }
     }
+    this.loading.upload = false
+  }
 
 
-    mounted() {
-      this.preparing()
-    }
+  preparing() {
+    this.doQuery()
+  }
+
+  mounted() {
+    this.preparing()
   }
   }
+}
 </script>
 </script>

+ 17 - 9
src/views/spectrum/statisticalAnalysis/wqMultipleSites/sitesanalysisResult/widget.vue

@@ -1,12 +1,21 @@
 <template>
 <template>
   <div class="page-panel">
   <div class="page-panel">
-    <div class="head-title">{{title}}</div>
+    <div class="head-title">{{ title }}</div>
     <div>
     <div>
-      <span style="margin-left:10px;color:#606266">时间轴:</span>
-      <el-slider v-model="value1" class="time-slider" :show-tooltip="false" :step="1" :min="0" :max="sliderMax" :disabled="sliderMax==0||!checked" @change="sliderChange"></el-slider>
-      <el-checkbox v-model="checked" style="margin-left:20px">实时监测信息地图标注</el-checkbox>
+      <span style="margin-left: 10px; color: #606266">时间轴:</span>
+      <el-slider
+        v-model="value1"
+        class="time-slider"
+        :show-tooltip="false"
+        :step="1"
+        :min="0"
+        :max="sliderMax"
+        :disabled="sliderMax == 0 || !checked"
+        @change="sliderChange"
+      ></el-slider>
+      <el-checkbox v-model="checked" style="margin-left: 20px">实时监测信息地图标注</el-checkbox>
       <div class="an-type">
       <div class="an-type">
-        <span style="margin-left:100px;color:#606266">统计方式:</span>
+        <span style="margin-left: 100px; color: #606266">统计方式:</span>
         <el-radio-group v-model="radio" @change="radioChange">
         <el-radio-group v-model="radio" @change="radioChange">
           <el-radio label="1">每日平均</el-radio>
           <el-radio label="1">每日平均</el-radio>
           <el-radio label="2">每小时平均</el-radio>
           <el-radio label="2">每小时平均</el-radio>
@@ -157,7 +166,7 @@ export default {
      * 加载图表
      * 加载图表
      */
      */
     loadChart(chartData, domId) {
     loadChart(chartData, domId) {
-      console.log('69--->>',chartData);
+      console.log('69--->>', chartData)
       let chartDom = this.$refs[domId]
       let chartDom = this.$refs[domId]
       let myChart = echarts.init(chartDom)
       let myChart = echarts.init(chartDom)
       let colorAry = ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc']
       let colorAry = ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc']
@@ -166,9 +175,8 @@ export default {
           trigger: 'axis'
           trigger: 'axis'
         },
         },
         color: colorAry,
         color: colorAry,
-        legend:{
-
-        },
+        legend: {},
+        dataZoom: [{ type: 'inside' }],
         grid: {
         grid: {
           top: 30,
           top: 30,
           bottom: 30,
           bottom: 30,

+ 61 - 27
src/views/spectrum/statisticalAnalysis/wqMultipleSites/widget.vue

@@ -5,58 +5,86 @@
       <el-form :model="form" size="small" label-width="auto">
       <el-form :model="form" size="small" label-width="auto">
         <div class="head-title">参数设置</div>
         <div class="head-title">参数设置</div>
         <el-form-item label="监测站点:" label-width="90px">
         <el-form-item label="监测站点:" label-width="90px">
-          <el-select placeholder="选择监测站点" v-model="form.targetSite" @change="targetSiteChange" style="width:100%">
-            <el-option v-for="(item,index) in siteOption" :key="index" :label="item.siteName" :value="item.id"></el-option>
+          <el-select
+            placeholder="选择监测站点"
+            v-model="form.targetSite"
+            @change="targetSiteChange"
+            style="width: 100%"
+          >
+            <el-option
+              v-for="(item, index) in siteOption"
+              :key="index"
+              :label="item.siteName"
+              :value="item.id"
+            ></el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
         <el-form-item label="日期范围:" label-width="90px">
         <el-form-item label="日期范围:" label-width="90px">
-          <el-date-picker v-model="form.date" type="daterange" align="right" unlink-panels range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" value-format="yyyy/MM/dd" format="yyyy/MM/dd" style="width:100%" clearable></el-date-picker>
+          <el-date-picker
+            v-model="form.date"
+            type="daterange"
+            align="right"
+            unlink-panels
+            range-separator="-"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            :picker-options="pickerOptions"
+            value-format="yyyy/MM/dd"
+            format="yyyy/MM/dd"
+            style="width: 100%"
+            clearable
+          ></el-date-picker>
         </el-form-item>
         </el-form-item>
         <div class="head-title">监测站点设置</div>
         <div class="head-title">监测站点设置</div>
         <el-form-item label="参数设置:" label-width="90px">
         <el-form-item label="参数设置:" label-width="90px">
-          <el-select placeholder="选择参数" v-model="form.targetName" filterable style="width:100%">
-            <el-option v-for="(item,index) in paramsOPtion" :key="index" :label="item.targetName+' ['+item.targetCode+']'" :value="item.targetCode"></el-option>
+          <el-select placeholder="选择参数" v-model="form.targetName" filterable style="width: 100%">
+            <el-option
+              v-for="(item, index) in paramsOPtion"
+              :key="index"
+              :label="item.targetName + ' [' + item.targetCode + ']'"
+              :value="item.targetCode"
+            ></el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
-        <el-form-item :label="'上游站点:('+upper.length+'/'+checkedUppers.length+')'" class="block-item">
+        <el-form-item :label="'下游站点:(' + upper.length + '/' + checkedUppers.length + ')'" class="block-item">
           <div class="data-container">
           <div class="data-container">
-            <div v-if="upper.length==0" class="empty"></div>
+            <div v-if="upper.length == 0" class="empty"></div>
             <el-checkbox-group v-model="checkedUppers" @change="getSelectedSite()">
             <el-checkbox-group v-model="checkedUppers" @change="getSelectedSite()">
               <ul>
               <ul>
-                <li v-for="(item,index) in upper" :key="index">
+                <li v-for="(item, index) in upper" :key="index">
                   <el-checkbox :label="item.id" :key="item.id">
                   <el-checkbox :label="item.id" :key="item.id">
-                    <span :title="item.siteName">{{item.siteName}}</span>
-                    <span>距离:{{item.distance}}km</span>
+                    <span :title="item.siteName">{{ item.siteName }}</span>
+                    <span>距离:{{ item.distance }}km</span>
                   </el-checkbox>
                   </el-checkbox>
                 </li>
                 </li>
               </ul>
               </ul>
             </el-checkbox-group>
             </el-checkbox-group>
           </div>
           </div>
         </el-form-item>
         </el-form-item>
-        <el-form-item :label="'下游站点:('+lower.length+'/'+checkedLowers.length+')'" class="block-item">
+        <el-form-item :label="'上游站点:(' + lower.length + '/' + checkedLowers.length + ')'" class="block-item">
           <div class="data-container">
           <div class="data-container">
-            <div v-if="lower.length==0" class="empty"></div>
+            <div v-if="lower.length == 0" class="empty"></div>
             <el-checkbox-group v-model="checkedLowers" @change="getSelectedSite()">
             <el-checkbox-group v-model="checkedLowers" @change="getSelectedSite()">
               <ul>
               <ul>
-                <li v-for="(item,index) in lower" :key="index">
+                <li v-for="(item, index) in lower" :key="index">
                   <el-checkbox :label="item.id" :key="item.id">
                   <el-checkbox :label="item.id" :key="item.id">
-                    <span :title="item.siteName">{{item.siteName}}</span>
-                    <span>距离:{{item.distance}}km</span>
+                    <span :title="item.siteName">{{ item.siteName }}</span>
+                    <span>距离:{{ item.distance }}km</span>
                   </el-checkbox>
                   </el-checkbox>
                 </li>
                 </li>
               </ul>
               </ul>
             </el-checkbox-group>
             </el-checkbox-group>
           </div>
           </div>
         </el-form-item>
         </el-form-item>
-        <el-form-item :label="'其他站点:('+other.length+'/'+checkedOthers.length+')'" class="block-item">
-          <div class="data-container" style="height:100px">
-            <div v-if="other.length==0" class="empty"></div>
+        <el-form-item :label="'其他站点:(' + other.length + '/' + checkedOthers.length + ')'" class="block-item">
+          <div class="data-container" style="height: 100px">
+            <div v-if="other.length == 0" class="empty"></div>
             <el-checkbox-group v-model="checkedOthers" @change="getSelectedSite()">
             <el-checkbox-group v-model="checkedOthers" @change="getSelectedSite()">
               <ul>
               <ul>
-                <li v-for="(item,index) in other" :key="index">
+                <li v-for="(item, index) in other" :key="index">
                   <el-checkbox :label="item.id" :key="item.id">
                   <el-checkbox :label="item.id" :key="item.id">
-                    <span :title="item.siteName">{{item.siteName}}</span>
-                    <span>{{item.distance}}km</span>
+                    <span :title="item.siteName">{{ item.siteName }}</span>
+                    <span>{{ item.distance }}km</span>
                   </el-checkbox>
                   </el-checkbox>
                 </li>
                 </li>
               </ul>
               </ul>
@@ -64,24 +92,30 @@
           </div>
           </div>
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
-      <el-table :data="tableData" border style="width: 100%" :header-cell-style="{backgroundColor:'#eaf1fd',height:'39px',textAlign:'center',fontWeight:600}" max-height="300px">
+      <el-table
+        :data="tableData"
+        border
+        style="width: 100%"
+        :header-cell-style="{ backgroundColor: '#eaf1fd', height: '39px', textAlign: 'center', fontWeight: 600 }"
+        max-height="300px"
+      >
         <el-table-column label="顺序" align="center" width="50">
         <el-table-column label="顺序" align="center" width="50">
-          <template slot-scope="scope">{{scope.$index+1}}</template>
+          <template slot-scope="scope">{{ scope.$index + 1 }}</template>
         </el-table-column>
         </el-table-column>
         <el-table-column prop="siteName" label="站点名称" align="center" show-overflow-tooltip></el-table-column>
         <el-table-column prop="siteName" label="站点名称" align="center" show-overflow-tooltip></el-table-column>
         <!-- <el-table-column prop="drainageType" label="类型" align="center" show-overflow-tooltip></el-table-column> -->
         <!-- <el-table-column prop="drainageType" label="类型" align="center" show-overflow-tooltip></el-table-column> -->
         <el-table-column label="操作" width="70" align="center">
         <el-table-column label="操作" width="70" align="center">
           <template slot-scope="scope">
           <template slot-scope="scope">
-            <el-button type="text" style="padding:0" @click="moveUp(scope)"  icon='el-icon-top'></el-button>
-            <el-button type="text" style="padding:0" @click="moveDown(scope)" icon='el-icon-bottom'></el-button>
+            <el-button type="text" style="padding: 0" @click="moveUp(scope)" icon="el-icon-top"></el-button>
+            <el-button type="text" style="padding: 0" @click="moveDown(scope)" icon="el-icon-bottom"></el-button>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
     </div>
     </div>
     <!-- 按钮 -->
     <!-- 按钮 -->
     <div class="btn-div">
     <div class="btn-div">
-      <el-button type="primary" style="width:80px" size="small" @click="getManySiteCurv()">分析</el-button>
-      <el-button type="primary" style="width:80px" size="small">清空</el-button>
+      <el-button type="primary" style="width: 80px" size="small" @click="getManySiteCurv()">分析</el-button>
+      <el-button type="primary" style="width: 80px" size="small">清空</el-button>
     </div>
     </div>
   </div>
   </div>
 </template>
 </template>