Selaa lähdekoodia

更新202110202241

fanghuisheng 3 vuotta sitten
vanhempi
commit
626ae3d4c3

+ 2 - 2
public/static/config.js

@@ -1,9 +1,9 @@
 // api 请求路径
 var PLATFROM_CONFIG = {};
-// PLATFROM_CONFIG.baseUrl = "http://172.16.120.229:8010/" //杨强本地
+PLATFROM_CONFIG.baseUrl = "http://172.16.120.104:8010/" //杨强本地
 // PLATFROM_CONFIG.baseUrl = "http://172.16.1.196:8010/"  //超博本地
 
-PLATFROM_CONFIG.baseUrl = "https://wx.ewoogi.com/api" //线上
+// PLATFROM_CONFIG.baseUrl = "https://wx.ewoogi.com/api" //线上
 PLATFROM_CONFIG.fileUrl = "https://wx.ewoogi.com/file/" //xlsx文件访问路径
 
 // 本地json文件请求路径

+ 1 - 1
src/api/user.js

@@ -4,7 +4,7 @@ import { tokenName } from '@/config'
 export async function login(data) {
   return request({
     url: '/login',
-    method: 'post',
+    method: 'POST',
     data,
   })
 }

BIN
src/assets/images/record-bg2.png


BIN
src/assets/images/record-dts.png


BIN
src/assets/images/record-exception.png


BIN
src/assets/images/record-item.png


BIN
src/assets/images/record-station.png


+ 0 - 4
src/config/default/setting.config.js

@@ -3,10 +3,6 @@
  */
 // let baseURL = window.PLATFROM_CONFIG.baseUrl
 // baseURL
-// setTimeout(() => {
-//   console.log(process.env.NODE_ENV,(window))
-// }, 1000);
-
 const setting = {
   //开发以及部署时的URL,hash模式时在不确定二级目录名称的情况下建议使用""代表相对路径或者"/二级目录/",history模式默认使用"/"或者"/二级目录/"
   publicPath: '',

+ 14 - 0
src/icons/svgIcon/detailBtn1.svg

@@ -0,0 +1,14 @@
+<svg
+    viewBox="0 0 1024 1024"
+    focusable="false"
+    class=""
+    data-icon="caret-up"
+    width="1em"
+    height="1em"
+    fill="currentColor"
+    aria-hidden="true"
+>
+    <path
+    d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"
+    ></path>
+</svg>

+ 1 - 0
src/icons/svgIcon/detailBtn2.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 1024 1024" focusable="false" class="" data-icon="caret-down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"></path></svg>

+ 14 - 0
src/icons/svgIcon/stationName.svg

@@ -0,0 +1,14 @@
+<svg
+    viewBox="64 64 896 896"
+    focusable="false"
+    class=""
+    data-icon="star"
+    width="1em"
+    height="1em"
+    fill="currentColor"
+    aria-hidden="true"
+>
+    <path
+    d="M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z"
+    ></path>
+</svg>

+ 3 - 0
src/utils/request.js

@@ -13,6 +13,8 @@ import router from '@/router'
 import { isArray } from '@/utils/validate'
 import { message } from 'ant-design-vue'
 
+console.log(successCode,tokenName)
+
 let loadingInstance
 
 /**
@@ -45,6 +47,7 @@ const instance = axios.create({
   timeout: requestTimeout,
   headers: {
     'Content-Type': contentType,
+    'Authorization':'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
   },
 })
 

+ 340 - 6
src/views/patrolManage/patrolRecord/dialog/select.vue

@@ -1,16 +1,350 @@
 <template>
-  <div style="margin: 0px 15px"></div>
+  <div style="margin: 0px 15px">
+    <el-dialog
+      class="recorddetail-select"
+      style="font-weight: 600"
+      v-model="dialogVisible"
+      title="测试"
+      width="900px"
+      @close="close"
+      center
+    >
+      <div class="recorddetail-span">
+        <span>(第1次)</span>
+        巡检开始:2021-10-20 18:00
+        <span style="color: red">(巡检中)</span>
+      </div>
+      <div class="recorddetail-top">
+        <div class="recorddetail-flex">
+          <div>
+            <i class="recorddetail-icon recorddetail-stationIcon"></i>
+            <div>
+              <span>1</span>
+              <span>站点数</span>
+            </div>
+          </div>
+          <div>
+            <i class="recorddetail-icon recorddetail-itemIcon"></i>
+            <div>
+              <span>3</span>
+              <span>巡检设备数</span>
+            </div>
+          </div>
+          <div>
+            <i class="recorddetail-icon recorddetail-exceptionIcon"></i>
+            <div>
+              <span>0</span>
+              <span>异常设备</span>
+            </div>
+          </div>
+          <div>
+            <i class="recorddetail-icon recorddetail-dtsIcon"></i>
+            <div>
+              <span>0</span>
+              <span>缺陷</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="recorddetail-body">
+        <div class="recorddetail-infoGroup">
+          <div>
+            <span>计划计划编号:</span>
+            <span>RIP23_211018001</span>
+          </div>
+          <div>
+            <span>巡检公司:</span>
+            <span>伍继智能</span>
+          </div>
+          <div>
+            <span>负责人:</span>
+            <span>蒋跃宗</span>
+          </div>
+          <div>
+            <span>巡检班组:</span>
+            <span>嘉定组</span>
+          </div>
+          <div>
+            <span>巡检人员:</span>
+            <span></span>
+          </div>
+        </div>
+        <div class="recorddetail-separatorTitle">巡检结果</div>
+
+        <div class="recorddetail-resultWrapper">
+          <div class="recorddetail-result">
+            <div class="recorddetail-stationName">
+              <div>测试站点</div>
+              <div class="divIcon">
+                <span role="img" aria-label="star" class="anticon anticon-star">
+                  <svg-icon iconClass="stationName"></svg-icon>
+                </span>
+                巡检中
+              </div>
+            </div>
+            <div class="recorddetail-items">
+              <div>
+                <span>3</span>
+                <span>巡检设备数</span>
+              </div>
+              <div>
+                <span class="">0</span>
+                <span>异常设备</span>
+              </div>
+              <div>
+                <span class="">0</span>
+                <span>缺陷</span>
+              </div>
+              <div>
+                <div class="recorddetail-detailBtn">
+                  <a @click="iconContent">
+                    {{ iconTitle }}
+                    <span
+                      role="img"
+                      aria-label="caret-up"
+                      class="anticon anticon-caret-up"
+                    >
+                      <svg-icon
+                        iconClass="detailBtn1"
+                        v-if="!iconBool"
+                      ></svg-icon>
+                      <svg-icon
+                        iconClass="detailBtn2"
+                        v-if="iconBool"
+                      ></svg-icon>
+                    </span>
+                  </a>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div style="margin-top: 12px" v-if="!iconBool">
+            <div style="margin: 8px 0px">
+              <strong>巡检设备:测试2</strong>
+              <span class="antd-pro-pages-inspect-recorddetail-headerItem">
+                设备状态:
+                <span>待巡检</span>
+              </span>
+              <div style="float: right">
+                <span class="antd-pro-pages-inspect-recorddetail-headerItem">
+                  检查项数:1
+                </span>
+                <span class="antd-pro-pages-inspect-recorddetail-headerItem">
+                  异常项:0
+                </span>
+              </div>
+            </div>
+            <div style="padding-left: 16px"></div>
+          </div>
+        </div>
+      </div>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="close">取消</el-button>
+          <el-button type="primary" @click="dialogVisible = false">
+            确定
+          </el-button>
+        </span>
+      </template>
+    </el-dialog>
+  </div>
 </template>
 <script>
-import { defineComponent, ref } from 'vue'
+import { defineComponent, ref, watchEffect } from 'vue'
+import { ElMessageBox } from 'element-plus'
 
 export default defineComponent({
   name: 'patolPlan',
   components: {},
-  props: {},
-  setup() {
+  props: {
+    flag: Boolean,
+  },
+  setup(props, context) {
     ref
-    return {}
+    const dialogVisible = ref(false)
+
+    const handleClose = (done) => {
+      ElMessageBox.confirm('Are you sure to close this dialog?')
+        .then(() => {
+          done()
+        })
+        .catch(() => {
+          // catch error
+        })
+    }
+
+    const close = () => {
+      context.emit('dialog', false)
+      dialogVisible.value = false
+    }
+
+    const iconCont = ref(1)
+    const iconBool = ref(false)
+    const iconTitle = ref('隐藏详情')
+    const iconContent = () => {
+      if (iconCont.value == 1) {
+        iconBool.value = true
+        iconTitle.value = '显示详情'
+        iconCont.value = 2
+      } else {
+        iconBool.value = false
+        iconTitle.value = '隐藏详情'
+        iconCont.value = 1
+      }
+      console.log('')
+    }
+
+    watchEffect((fn, options) => {
+      fn, options
+      dialogVisible.value = props.flag
+    })
+    return {
+      close,
+      iconBool,
+      iconCont,
+      iconTitle,
+      iconContent,
+      dialogVisible,
+      handleClose,
+    }
   },
 })
-</script>
+</script>
+
+<style lang="scss" scoped>
+.recorddetail-span {
+  margin-top: -25px;
+  text-align: center;
+}
+.recorddetail-top {
+  background: url('~@/assets/images/record-bg2.png') 50% no-repeat;
+  background-size: cover;
+  margin: 0px -25px;
+  .recorddetail-flex {
+    height: 100px;
+    width: 100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 0 50px;
+    > div {
+      display: flex;
+      flex: 1 1;
+      justify-content: center;
+      > div {
+        text-align: center;
+        margin-left: 20px;
+        span {
+          color: #fff;
+        }
+        span:first-child {
+          font-size: 23px;
+          display: block;
+        }
+        span:last-child {
+          font-size: 13px;
+          display: block;
+        }
+      }
+    }
+    .recorddetail-icon {
+      width: 50px;
+      height: 50px;
+      display: block;
+      margin-top: 5px;
+    }
+    .recorddetail-stationIcon {
+      background: url('~@/assets/images/record-station.png') 50% no-repeat;
+      background-size: cover;
+    }
+    .recorddetail-itemIcon {
+      background: url('~@/assets/images/record-item.png') 50% no-repeat;
+      background-size: cover;
+    }
+    .recorddetail-exceptionIcon {
+      background: url('~@/assets/images/record-exception.png') 50% no-repeat;
+      background-size: cover;
+    }
+    .recorddetail-dtsIcon {
+      background: url('~@/assets/images/record-dts.png') 50% no-repeat;
+      background-size: cover;
+    }
+  }
+}
+.recorddetail-body {
+  margin-top: 20px;
+  .recorddetail-infoGroup {
+    > div {
+      background-color: #f7f8fa;
+      margin-bottom: 8px;
+      color: #666;
+      padding: 8px 12px;
+      font-weight: 500;
+      span:first-child {
+        color: #000;
+        display: inline-block;
+        margin-right: 12px;
+      }
+      span:last-child {
+        color: #000;
+        font-weight: 600;
+      }
+    }
+  }
+  .recorddetail-separatorTitle {
+    width: 100%;
+    color: #22a97e;
+    font-size: 20px;
+    font-weight: 700;
+    margin: 12px 0;
+    text-align: center;
+  }
+  .recorddetail-resultWrapper {
+    .recorddetail-result {
+      background-color: #e9ebf4;
+      border-radius: 4px;
+      height: 81px;
+      display: flex;
+      position: relative;
+      .recorddetail-stationName {
+        display: inline-block;
+        height: 100%;
+        width: 200px;
+        background-color: #d5d6e3;
+        padding: 12px;
+        text-align: center;
+        color: rgba(0, 0, 0, 0.65);
+        .divIcon {
+          color: rgb(76, 142, 250);
+          font-size: 15px;
+          margin-top: 12px;
+        }
+      }
+      .recorddetail-items {
+        display: flex;
+        justify-content: space-evenly;
+        flex: 1 1;
+        align-items: center;
+        > div {
+          text-align: center;
+          > span:first-child {
+            font-size: 19px;
+            color: #333;
+            display: block;
+            margin-bottom: 4px;
+          }
+          > span:last-child {
+            font-size: 15px;
+            color: #a0a2bf;
+          }
+        }
+        .recorddetail-detailBtn {
+          font-size: 14px;
+          color: #6c7fff;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+}
+</style>

+ 11 - 1
src/views/patrolManage/patrolRecord/tables/planSelect.vue

@@ -85,19 +85,27 @@
         ></el-pagination>
       </div>
     </div>
+    <select-Dialog :flag="dialog" @dialog="showDialog"></select-Dialog>
   </div>
 </template>
 <script>
 import { defineComponent, ref } from 'vue'
+import selectDialog from '../dialog/select.vue'
 
 export default defineComponent({
   name: 'patolPlan',
-  components: {},
+  components: { selectDialog },
   props: {},
   setup() {
+    const dialog = ref(false)
     const select = (row) => {
       console.log('', row)
+      dialog.value = true
     }
+    const showDialog = (value) => {
+      dialog.value = value
+    }
+
     // 表头样式设置
     const headClass = () => {
       return 'background:#FAFAFA !important;color: black;'
@@ -110,6 +118,8 @@ export default defineComponent({
       console.log(`current page: ${val}`)
     }
     return {
+      dialog,
+      showDialog,
       currentPage: ref(1),
       handleSizeChange,
       handleCurrentChange,

+ 13 - 1
src/views/patrolManage/patrolRecord/tables/siteSelect.vue

@@ -72,19 +72,29 @@
         ></el-pagination>
       </div>
     </div>
+    <select-Dialog :flag="dialog" @dialog="showDialog"></select-Dialog>
   </div>
 </template>
 <script>
 import { defineComponent, ref } from 'vue'
+import selectDialog from '../dialog/select.vue'
 
 export default defineComponent({
   name: 'patolPlan',
-  components: {},
+  components: {
+    selectDialog,
+  },
   props: {},
   setup() {
+    const dialog = ref(false)
     const select = (row) => {
       console.log('', row)
+      dialog.value = true
+    }
+    const showDialog = (value) => {
+      dialog.value = value
     }
+
     // 表头样式设置
     const headClass = () => {
       return 'background:#FAFAFA !important;color: black;'
@@ -97,6 +107,8 @@ export default defineComponent({
       console.log(`current page: ${val}`)
     }
     return {
+      dialog,
+      showDialog,
       currentPage: ref(1),
       handleSizeChange,
       handleCurrentChange,