zcy 4 роки тому
батько
коміт
ec14cbfb3a
40 змінених файлів з 3765 додано та 205 видалено
  1. 9 0
      src/api/request.js
  2. 25 32
      src/mixin/listMixin.js
  3. 6 0
      src/router/index.js
  4. 59 21
      src/views/basics/add/CheckAndEditModel.vue
  5. 9 14
      src/views/basics/add/index.vue
  6. 3 5
      src/views/basics/add/indexColumns.js
  7. 64 0
      src/views/basics/check/index.vue
  8. 149 0
      src/views/basics/check/view/bl/CheckAndEditModel.vue
  9. 143 0
      src/views/basics/check/view/bl/index.vue
  10. 77 0
      src/views/basics/check/view/bl/indexColumns.js
  11. 149 0
      src/views/basics/check/view/dc/CheckAndEditModel.vue
  12. 143 0
      src/views/basics/check/view/dc/index.vue
  13. 77 0
      src/views/basics/check/view/dc/indexColumns.js
  14. 149 0
      src/views/basics/check/view/fd/CheckAndEditModel.vue
  15. 143 0
      src/views/basics/check/view/fd/index.vue
  16. 77 0
      src/views/basics/check/view/fd/indexColumns.js
  17. 149 0
      src/views/basics/check/view/gl/CheckAndEditModel.vue
  18. 143 0
      src/views/basics/check/view/gl/index.vue
  19. 77 0
      src/views/basics/check/view/gl/indexColumns.js
  20. 149 0
      src/views/basics/check/view/jc/CheckAndEditModel.vue
  21. 143 0
      src/views/basics/check/view/jc/index.vue
  22. 77 0
      src/views/basics/check/view/jc/indexColumns.js
  23. 149 0
      src/views/basics/check/view/wjc/CheckAndEditModel.vue
  24. 143 0
      src/views/basics/check/view/wjc/index.vue
  25. 77 0
      src/views/basics/check/view/wjc/indexColumns.js
  26. 4 4
      src/views/basics/pillar/CheckAndEditModel.vue
  27. 8 13
      src/views/basics/pillar/index.vue
  28. 3 3
      src/views/basics/pillar/indexColumns.js
  29. 149 0
      src/views/catenary/checklist/CheckAndEditModel.vue
  30. 128 3
      src/views/catenary/checklist/index.vue
  31. 77 0
      src/views/catenary/checklist/indexColumns.js
  32. 149 0
      src/views/catenary/fault/CheckAndEditModel.vue
  33. 73 104
      src/views/catenary/fault/index.vue
  34. 77 0
      src/views/catenary/fault/indexColumns.js
  35. 149 0
      src/views/catenary/record/CheckAndEditModel.vue
  36. 128 3
      src/views/catenary/record/index.vue
  37. 77 0
      src/views/catenary/record/indexColumns.js
  38. 149 0
      src/views/catenary/stand/CheckAndEditModel.vue
  39. 128 3
      src/views/catenary/stand/index.vue
  40. 77 0
      src/views/catenary/stand/indexColumns.js

+ 9 - 0
src/api/request.js

@@ -30,3 +30,12 @@ export function httpAction(url, parameter, method) {
     data: parameter
   })
 }
+
+export function downFile(url, parameter) {
+  return request({
+    url: url,
+    params: parameter,
+    method: 'get',
+    responseType: 'blob'
+  })
+}

+ 25 - 32
src/mixin/listMixin.js

@@ -3,8 +3,8 @@
  * 高级查询按钮调用 superQuery方法  高级查询组件ref定义为superQueryModal
  * data中url定义 list为查询列表  delete为删除单条记录  deleteBatch为批量删除
  */
-import {filterObj} from '@/utils/util'
-import {postAction, getAction, deleteAction} from '@/api/request'
+import { filterObj } from '@/utils/util'
+import { postAction, getAction, deleteAction, downFile } from '@/api/request'
 import store from '@/store'
 
 export const listMixin = {
@@ -50,17 +50,13 @@ export const listMixin = {
     }
   },
   created() {
-    if (!this.disableMixinCreated) {
-      console.log(' -- mixin created -- ')
-      this.loadData()
-      // 初始化字典配置 在自己页面定义
-      this.initDictConfig()
-    }
+    console.log(' -- mixin created -- ')
+    this.loadData()
   },
   computed: {
     // token header
     tokenHeader() {
-      const head = {'Authorization': store.getters.token}
+      const head = { 'Authorization': store.getters.token }
       return head
     }
   },
@@ -93,9 +89,6 @@ export const listMixin = {
         this.loading = false
       })
     },
-    initDictConfig() {
-      console.log('--这是一个假的方法!')
-    },
     handleSuperQuery(params, matchType) {
       // 高级查询方法
       if (!params) {
@@ -124,7 +117,7 @@ export const listMixin = {
     getQueryField() {
       // TODO 字段权限控制
       var str = 'id,'
-      this.columns.forEach(function (value) {
+      this.columns.forEach(function(value) {
         str += ',' + value.dataIndex
       })
       return str
@@ -148,7 +141,7 @@ export const listMixin = {
       this.queryParam = {}
       this.loadData(1)
     },
-    batchDel: function () {
+    batchDel: function() {
       if (!this.url.delete) {
         this.$message.error('请设置url.deleteBatch属性!')
         return
@@ -165,7 +158,7 @@ export const listMixin = {
         this.$confirm({
           title: '确认删除',
           content: '是否删除选中数据?',
-          onOk: function () {
+          onOk: function() {
             that.loading = true
             deleteAction(that.url.delete, ids).then((res) => {
               if (res.code === 200) {
@@ -184,7 +177,7 @@ export const listMixin = {
         })
       }
     },
-    handleDelete: function (id) {
+    handleDelete: function(id) {
       if (!this.url.delete) {
         this.$message.error('请设置url.delete属性!')
         return
@@ -212,15 +205,15 @@ export const listMixin = {
       }
       console.log('currentIndex', currentIndex)
     },
-    handleEdit: function (record) {
+    handleEdit: function(record) {
       this.$refs.modalForm.edit(record)
       this.$refs.modalForm.title = '编辑'
       this.$refs.modalForm.disableSubmit = false
     },
-    handleAdd: function () {
-      console.log(this.$refs);
+    handleAdd: function() {
+      console.log(this.$refs)
       debugger
-      console.log(this.$refs.modalForm);
+      console.log(this.$refs.modalForm)
       this.$refs.modalForm.add()
       this.$refs.modalForm.title = '新增'
       this.$refs.modalForm.disableSubmit = false
@@ -249,7 +242,7 @@ export const listMixin = {
       // 清空列表选中
       this.onClearSelected()
     },
-    handleDetail: function (record) {
+    handleDetail: function(record) {
       this.$refs.modalForm.edit(record)
       this.$refs.modalForm.title = '详情'
       this.$refs.modalForm.disableSubmit = true
@@ -257,7 +250,7 @@ export const listMixin = {
     /* 导出 */
     handleExportXls2() {
       const paramsStr = encodeURI(JSON.stringify(this.getQueryParams()))
-      const url = ``
+      const url = `${process.env.VUE_APP_BASE_API}/${this.url.exportXlsUrl}?paramsStr=${paramsStr}`
       window.location.href = url
     },
     handleExportXls(fileName) {
@@ -275,9 +268,9 @@ export const listMixin = {
           return
         }
         if (typeof window.navigator.msSaveBlob !== 'undefined') {
-          window.navigator.msSaveBlob(new Blob([data], {type: 'application/vnd.ms-excel'}), fileName + '.xls')
+          window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName + '.xls')
         } else {
-          const url = window.URL.createObjectURL(new Blob([data], {type: 'application/vnd.ms-excel'}))
+          const url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' }))
           const link = document.createElement('a')
           link.style.display = 'none'
           link.href = url
@@ -300,16 +293,16 @@ export const listMixin = {
         if (info.file.response.success) {
           // this.$message.success(`${info.file.name} 文件上传成功`);
           if (info.file.response.code === 201) {
-            const {message, result: {msg, fileUrl, fileName}} = info.file.response
+            const { message, result: { msg, fileUrl, fileName }} = info.file.response
             const href = fileUrl
             this.$warning({
-                title: message,
-                content: ( < div >
-                  < span > {msg} < /span><br/ >
-                  < span > 具体详情请 < a href = {href} target = '_blank' download = {fileName} > 点击下载 < /a> </span >
+              title: message,
+              content: (< div >
+                < span > {msg} < /span><br/ >
+                < span > 具体详情请 < a href = {href} target = '_blank' download = {fileName} > 点击下载 < /a> </span >
               < /div>
-            )
-          })
+              )
+            })
           } else {
             this.$message.success(info.file.response.message || `${info.file.name} 文件上传成功`)
           }
@@ -329,7 +322,7 @@ export const listMixin = {
               okText: '重新登录',
               mask: false,
               onOk: () => {
-                store.dispatch('Logout').then(() => {
+                store.dispatch('user/logout').then(() => {
                   this.$router.push(`/login?redirect=${this.$route.fullPath}`)
                 })
               }

+ 6 - 0
src/router/index.js

@@ -121,6 +121,12 @@ export const constantRoutes = [
         component: () => import('@/views/basics/add/index'), // Parent router-view
         name: 'add',
         meta: { title: '附加悬挂锚段' }
+      },
+      {
+        path: 'check',
+        component: () => import('@/views/basics/check/index'), // Parent router-view
+        name: 'check',
+        meta: { title: '检查表数据' }
       }
     ]
   },

+ 59 - 21
src/views/basics/add/CheckAndEditModel.vue

@@ -1,25 +1,70 @@
 <template>
   <j-modal
     :title="title"
-    :width="800"
+    :width="700"
     :visible="visible"
     :mask-closable="false"
     cancel-text="关闭"
     @close="close"
   >
     <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
-      <a-form-model-item label="文书名称" prop="name">
-        <a-input v-model="model.name" />
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
       </a-form-model-item>
-<!--      <a-form-model-item label="文书类型" prop="type">-->
-<!--        <j-dict-select-tag-->
-<!--          v-model="model.type"-->
-<!--          style="width: 360px"-->
-<!--          dict-code="word_type"-->
-<!--        />-->
-<!--      </a-form-model-item>-->
-      <a-form-model-item label="文书描述" prop="remarks">
-        <a-input v-model="model.remarks" />
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
       </a-form-model-item>
     </a-form-model>
   </j-modal>
@@ -35,7 +80,7 @@ export default {
   data() {
     return {
       labelCol: { span: 4 },
-      wrapperCol: { span: 14 },
+      wrapperCol: { span: 19 },
       dataSource: [],
       title: '',
       visible: false,
@@ -79,7 +124,7 @@ export default {
         }
       })
     },
-    saveData(result) {
+    saveData() {
       let url, type
       if (!this.model.id) {
         url = this.url.add
@@ -89,13 +134,6 @@ export default {
         url = this.url.edit
         type = 'put'
       }
-      if (result) {
-        this.model.fileName = result.fileName
-        this.model.tempUrl = result.tempUrl
-      } else {
-        this.model.fileName = ''
-        this.model.tempUrl = ''
-      }
       httpAction(url, this.model, type).then((res) => {
         if (res.code === 200) {
           this.$message.success(res.msg)

+ 9 - 14
src/views/basics/add/index.vue

@@ -1,9 +1,7 @@
 <template>
   <el-card style="margin: 15px">
-
     <!-- 查询区域 -->
     <div class="table-page-search-wrapper">
-      <!-- 搜索区域 -->
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-form-item>
           <j-dict-select-tag
@@ -54,13 +52,12 @@
         </a-form-item>
       </a-form>
     </div>
-
     <!-- 操作按钮区域 -->
-    <div class="table-operator" style="margin-top: 5px">
+    <div class="table-operator" style="margin: 15px 0">
       <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
-      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
       </a-upload>
 
       <a-dropdown v-if="selectedRowKeys.length > 0">
@@ -117,7 +114,6 @@ import columns from './indexColumns'
 import CheckAndEditModel from './CheckAndEditModel'
 
 export default {
-  name: 'RoleList',
   components: {
     CheckAndEditModel
   },
@@ -129,15 +125,14 @@ export default {
       // 表头
       columns: columns(this),
       url: {
-        list: '/busFjxgmd/getListByZz',
-        delete: '/business/catenary/bus/zzdzxx/'
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
       }
     }
   },
-  computed: {
-    importExcelUrl: function() {
-      return `${this.url.importExcelUrl}`
-    }
+  created() {
   },
   methods: {
   }

+ 3 - 5
src/views/basics/add/indexColumns.js

@@ -13,9 +13,7 @@ function columns(vm) {
       title: '线别',
       align: 'center',
       dataIndex: 'xb',
-      scopedSlots: { customRender: 'xb' },
-      key: 'xb',
-      width: 300
+      key: 'xb'
     },
     {
       title: '区间/站场',
@@ -62,8 +60,8 @@ function columns(vm) {
     {
       title: '安装时间',
       align: 'center',
-      dataIndex: 'createTime',
-      key: 'createTime'
+      dataIndex: 'ccrq',
+      key: 'ccrq'
     },
     {
       title: '操作',

+ 64 - 0
src/views/basics/check/index.vue

@@ -0,0 +1,64 @@
+<template>
+  <el-card style="margin: 15px">
+    <a-tabs v-model="activeKey">
+      <a-tab-pane
+        v-for="item in tabs"
+        :key="item.name"
+        :tab="item.title"
+      >
+        <component
+          :is="item.name"
+          v-if="activeKey === item.name"
+        />
+      </a-tab-pane>
+    </a-tabs>
+  </el-card>
+</template>
+<script>
+import fd from './view/fd'
+import bl from './view/fd'
+import dc from './view/fd'
+import gl from './view/fd'
+import jc from './view/fd'
+import wjc from './view/fd'
+
+export default {
+  components: {
+    fd,
+    bl,
+    dc,
+    gl,
+    jc,
+    wjc
+  },
+  data() {
+    return {
+      activeKey: 'fd',
+      tabs: [{
+        title: '分段分相绝缘器',
+        name: 'fd'
+      }, {
+        title: '避雷器',
+        name: 'bl'
+      }, {
+        title: '地磁感应装置',
+        name: 'dc'
+      }, {
+        title: '隔离开关',
+        name: 'gl'
+      }, {
+        title: '交叉线岔',
+        name: 'jc'
+      }, {
+        title: '无交叉线岔',
+        name: 'wjc'
+      }]
+    }
+  },
+  computed: {},
+  methods: {}
+}
+</script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 149 - 0
src/views/basics/check/view/bl/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 143 - 0
src/views/basics/check/view/bl/index.vue

@@ -0,0 +1,143 @@
+<template>
+  <div>
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
+      </a-form>
+    </div>
+    <!-- 操作按钮区域 -->
+    <div class="table-operator" style="margin: 15px 0">
+      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
+      </a-upload>
+
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        row-key="id"
+        :columns="columns"
+        :data-source="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span slot="action" slot-scope="text, record">
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
+          <a-divider type="vertical" />
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
+        </span>
+      </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
+    </div>
+    <!-- table区域-end -->
+    <!-- 表单区域 -->
+  </div>
+</template>
+<script>
+import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
+
+export default {
+  components: {
+    CheckAndEditModel
+  },
+  mixins: [listMixin],
+  data() {
+    return {
+      // 查询条件
+      queryParam: {},
+      // 表头
+      columns: columns(this),
+      url: {
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+  }
+}
+</script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 77 - 0
src/views/basics/check/view/bl/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns

+ 149 - 0
src/views/basics/check/view/dc/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 143 - 0
src/views/basics/check/view/dc/index.vue

@@ -0,0 +1,143 @@
+<template>
+  <div>
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
+      </a-form>
+    </div>
+    <!-- 操作按钮区域 -->
+    <div class="table-operator" style="margin: 15px 0">
+      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
+      </a-upload>
+
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        row-key="id"
+        :columns="columns"
+        :data-source="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span slot="action" slot-scope="text, record">
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
+          <a-divider type="vertical" />
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
+        </span>
+      </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
+    </div>
+    <!-- table区域-end -->
+    <!-- 表单区域 -->
+  </div>
+</template>
+<script>
+import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
+
+export default {
+  components: {
+    CheckAndEditModel
+  },
+  mixins: [listMixin],
+  data() {
+    return {
+      // 查询条件
+      queryParam: {},
+      // 表头
+      columns: columns(this),
+      url: {
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+  }
+}
+</script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 77 - 0
src/views/basics/check/view/dc/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns

+ 149 - 0
src/views/basics/check/view/fd/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 143 - 0
src/views/basics/check/view/fd/index.vue

@@ -0,0 +1,143 @@
+<template>
+  <div>
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
+      </a-form>
+    </div>
+    <!-- 操作按钮区域 -->
+    <div class="table-operator" style="margin: 15px 0">
+      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
+      </a-upload>
+
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        row-key="id"
+        :columns="columns"
+        :data-source="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span slot="action" slot-scope="text, record">
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
+          <a-divider type="vertical" />
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
+        </span>
+      </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
+    </div>
+    <!-- table区域-end -->
+    <!-- 表单区域 -->
+  </div>
+</template>
+<script>
+import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
+
+export default {
+  components: {
+    CheckAndEditModel
+  },
+  mixins: [listMixin],
+  data() {
+    return {
+      // 查询条件
+      queryParam: {},
+      // 表头
+      columns: columns(this),
+      url: {
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+  }
+}
+</script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 77 - 0
src/views/basics/check/view/fd/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns

+ 149 - 0
src/views/basics/check/view/gl/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 143 - 0
src/views/basics/check/view/gl/index.vue

@@ -0,0 +1,143 @@
+<template>
+  <div>
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
+      </a-form>
+    </div>
+    <!-- 操作按钮区域 -->
+    <div class="table-operator" style="margin: 15px 0">
+      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
+      </a-upload>
+
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        row-key="id"
+        :columns="columns"
+        :data-source="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span slot="action" slot-scope="text, record">
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
+          <a-divider type="vertical" />
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
+        </span>
+      </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
+    </div>
+    <!-- table区域-end -->
+    <!-- 表单区域 -->
+  </div>
+</template>
+<script>
+import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
+
+export default {
+  components: {
+    CheckAndEditModel
+  },
+  mixins: [listMixin],
+  data() {
+    return {
+      // 查询条件
+      queryParam: {},
+      // 表头
+      columns: columns(this),
+      url: {
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+  }
+}
+</script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 77 - 0
src/views/basics/check/view/gl/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns

+ 149 - 0
src/views/basics/check/view/jc/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 143 - 0
src/views/basics/check/view/jc/index.vue

@@ -0,0 +1,143 @@
+<template>
+  <div>
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
+      </a-form>
+    </div>
+    <!-- 操作按钮区域 -->
+    <div class="table-operator" style="margin: 15px 0">
+      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
+      </a-upload>
+
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        row-key="id"
+        :columns="columns"
+        :data-source="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span slot="action" slot-scope="text, record">
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
+          <a-divider type="vertical" />
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
+        </span>
+      </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
+    </div>
+    <!-- table区域-end -->
+    <!-- 表单区域 -->
+  </div>
+</template>
+<script>
+import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
+
+export default {
+  components: {
+    CheckAndEditModel
+  },
+  mixins: [listMixin],
+  data() {
+    return {
+      // 查询条件
+      queryParam: {},
+      // 表头
+      columns: columns(this),
+      url: {
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+  }
+}
+</script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 77 - 0
src/views/basics/check/view/jc/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns

+ 149 - 0
src/views/basics/check/view/wjc/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 143 - 0
src/views/basics/check/view/wjc/index.vue

@@ -0,0 +1,143 @@
+<template>
+  <div>
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
+      </a-form>
+    </div>
+    <!-- 操作按钮区域 -->
+    <div class="table-operator" style="margin: 15px 0">
+      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
+      </a-upload>
+
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        row-key="id"
+        :columns="columns"
+        :data-source="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span slot="action" slot-scope="text, record">
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
+          <a-divider type="vertical" />
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
+        </span>
+      </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
+    </div>
+    <!-- table区域-end -->
+    <!-- 表单区域 -->
+  </div>
+</template>
+<script>
+import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
+
+export default {
+  components: {
+    CheckAndEditModel
+  },
+  mixins: [listMixin],
+  data() {
+    return {
+      // 查询条件
+      queryParam: {},
+      // 表头
+      columns: columns(this),
+      url: {
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+  }
+}
+</script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 77 - 0
src/views/basics/check/view/wjc/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns

+ 4 - 4
src/views/basics/pillar/CheckAndEditModel.vue

@@ -11,7 +11,7 @@
       <a-form-model-item label="支柱号" prop="zzh">
         <a-input v-model="model.zzh" />
       </a-form-model-item>
-      <a-form-model-item label="所属部门" prop="zzh">
+      <a-form-model-item label="所属部门" prop="bm">
       </a-form-model-item>
       <a-form-model-item label="线别" prop="xb">
         <j-dict-select-tag
@@ -28,7 +28,7 @@
       <a-form-model-item label="行别" prop="hb">
         <j-dict-select-tag
           type="radioButton"
-          v-model="model.qj"
+          v-model="model.hb"
           dict-code="word_type"
         />
       </a-form-model-item>
@@ -59,10 +59,10 @@
           dict-code="word_type"
         />
       </a-form-model-item>
-      <a-form-model-item label="直线/曲外/曲内" prop="lx">
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
         <j-dict-select-tag
           type="radioButton"
-          v-model="model.lx"
+          v-model="model.zxqwqn"
           dict-code="word_type"
         />
       </a-form-model-item>

+ 8 - 13
src/views/basics/pillar/index.vue

@@ -1,9 +1,7 @@
 <template>
   <el-card style="margin: 15px">
-
     <!-- 查询区域 -->
     <div class="table-page-search-wrapper">
-      <!-- 搜索区域 -->
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-form-item>
           <j-dict-select-tag
@@ -54,13 +52,12 @@
         </a-form-item>
       </a-form>
     </div>
-
     <!-- 操作按钮区域 -->
-    <div class="table-operator" style="margin-top: 5px">
+    <div class="table-operator" style="margin: 15px 0">
       <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
-      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
       </a-upload>
 
       <a-dropdown v-if="selectedRowKeys.length > 0">
@@ -117,7 +114,6 @@ import columns from './indexColumns'
 import CheckAndEditModel from './CheckAndEditModel'
 
 export default {
-  name: 'RoleList',
   components: {
     CheckAndEditModel
   },
@@ -130,14 +126,13 @@ export default {
       columns: columns(this),
       url: {
         list: '/business/catenary/bus/zzdzxx/list',
-        delete: '/business/catenary/bus/zzdzxx/'
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
       }
     }
   },
-  computed: {
-    importExcelUrl: function() {
-      return `${this.url.importExcelUrl}`
-    }
+  created() {
   },
   methods: {
   }

+ 3 - 3
src/views/basics/pillar/indexColumns.js

@@ -13,7 +13,7 @@ function columns(vm) {
       title: '线别',
       align: 'center',
       dataIndex: 'xb',
-      key: 'xb',
+      key: 'xb'
     },
     {
       title: '区间/站场',
@@ -60,8 +60,8 @@ function columns(vm) {
     {
       title: '安装时间',
       align: 'center',
-      dataIndex: 'createTime',
-      key: 'createTime'
+      dataIndex: 'ccrq',
+      key: 'ccrq'
     },
     {
       title: '操作',

+ 149 - 0
src/views/catenary/checklist/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 128 - 3
src/views/catenary/checklist/index.vue

@@ -1,13 +1,135 @@
 <template>
-  <div class="app-container">
-  </div>
-</template>
+  <el-card style="margin: 15px">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
+      </a-form>
+    </div>
+    <!-- 操作按钮区域 -->
+    <div class="table-operator" style="margin: 15px 0">
+      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
+      </a-upload>
+
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
 
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        row-key="id"
+        :columns="columns"
+        :data-source="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span slot="action" slot-scope="text, record">
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
+          <a-divider type="vertical" />
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
+        </span>
+      </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
+    </div>
+    <!-- table区域-end -->
+    <!-- 表单区域 -->
+  </el-card>
+</template>
 <script>
+import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
 
 export default {
+  components: {
+    CheckAndEditModel
+  },
+  mixins: [listMixin],
   data() {
     return {
+      // 查询条件
+      queryParam: {},
+      // 表头
+      columns: columns(this),
+      url: {
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
+      }
     }
   },
   created() {
@@ -16,3 +138,6 @@ export default {
   }
 }
 </script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 77 - 0
src/views/catenary/checklist/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns

+ 149 - 0
src/views/catenary/fault/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 73 - 104
src/views/catenary/fault/index.vue

@@ -1,37 +1,63 @@
 <template>
-  <a-card :bordered="false" class="card-area">
-
+  <el-card style="margin: 15px">
     <!-- 查询区域 -->
     <div class="table-page-search-wrapper">
-      <!-- 搜索区域 -->
       <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-          <a-col :md="6" :sm="8">
-            <a-form-item label="名称" :label-col="{span: 5}" :wrapper-col="{span: 18, offset: 1}">
-              <a-input v-model="queryParam.roleName" placeholder="请输入名称查询" />
-            </a-form-item>
-          </a-col>
-          <a-col :md="6" :sm="8">
-            <a-form-item label="创建时间" :label-col="{span: 5}" :wrapper-col="{span: 18, offset: 1}">
-              <a-input v-model="queryParam.roleName" placeholder="请输入名称查询" />
-            </a-form-item>
-          </a-col>
-          <span class="table-page-search-submitButtons">
-            <a-col :md="6" :sm="24">
-              <a-button type="primary" @click="searchQuery">查询</a-button>
-              <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
-            </a-col>
-          </span>
-        </a-row>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
       </a-form>
     </div>
-
     <!-- 操作按钮区域 -->
-    <div class="table-operator" style="margin-top: 5px">
+    <div class="table-operator" style="margin: 15px 0">
       <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
-      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
       </a-upload>
 
       <a-dropdown v-if="selectedRowKeys.length > 0">
@@ -65,107 +91,50 @@
       >
 
         <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
           <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">
-              更多 <a-icon type="down" />
-            </a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a @click="handlePerssion(record.id)">授权</a>
-              </a-menu-item>
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
         </span>
       </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
     </div>
     <!-- table区域-end -->
     <!-- 表单区域 -->
-  </a-card>
+  </el-card>
 </template>
 <script>
 import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
+
 export default {
-  name: 'RoleList',
   components: {
+    CheckAndEditModel
   },
   mixins: [listMixin],
   data() {
     return {
-      description: '角色管理页面',
       // 查询条件
-      queryParam: { roleName: '' },
+      queryParam: {},
       // 表头
-      columns: [
-        {
-          title: '#',
-          dataIndex: '',
-          key: 'rowIndex',
-          width: 60,
-          align: 'center',
-          customRender: function(t, r, index) {
-            return parseInt(index) + 1
-          }
-        },
-        {
-          title: '角色名称',
-          align: 'center',
-          dataIndex: 'roleName'
-        },
-        {
-          title: '角色编码',
-          align: 'center',
-          dataIndex: 'roleCode'
-        },
-        {
-          title: '备注',
-          align: 'center',
-          dataIndex: 'description'
-        },
-        {
-          title: '创建时间',
-          dataIndex: 'createTime',
-          align: 'center',
-          sorter: true
-        },
-        {
-          title: '更新时间',
-          dataIndex: 'updateTime',
-          align: 'center',
-          sorter: true
-        },
-        {
-          title: '操作',
-          dataIndex: 'action',
-          align: 'center',
-          scopedSlots: { customRender: 'action' }
-        }
-      ],
+      columns: columns(this),
       url: {
-        list: '/sys/role/list',
-        delete: '/sys/role/delete',
-        deleteBatch: '/sys/role/deleteBatch',
-        exportXlsUrl: '/sys/role/exportXls',
-        importExcelUrl: 'sys/role/importExcel'
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
       }
     }
   },
-  computed: {
-    importExcelUrl: function() {
-      return `${this.url.importExcelUrl}`
-    }
+  created() {
   },
   methods: {
-    handlePerssion: function(roleId) {
-      // alert(roleId);
-      this.$refs.modalUserRole.show(roleId)
-    }
   }
 }
 </script>

+ 77 - 0
src/views/catenary/fault/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns

+ 149 - 0
src/views/catenary/record/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 128 - 3
src/views/catenary/record/index.vue

@@ -1,13 +1,135 @@
 <template>
-  <div class="app-container">
-  </div>
-</template>
+  <el-card style="margin: 15px">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
+      </a-form>
+    </div>
+    <!-- 操作按钮区域 -->
+    <div class="table-operator" style="margin: 15px 0">
+      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
+      </a-upload>
+
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
 
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        row-key="id"
+        :columns="columns"
+        :data-source="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span slot="action" slot-scope="text, record">
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
+          <a-divider type="vertical" />
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
+        </span>
+      </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
+    </div>
+    <!-- table区域-end -->
+    <!-- 表单区域 -->
+  </el-card>
+</template>
 <script>
+import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
 
 export default {
+  components: {
+    CheckAndEditModel
+  },
+  mixins: [listMixin],
   data() {
     return {
+      // 查询条件
+      queryParam: {},
+      // 表头
+      columns: columns(this),
+      url: {
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
+      }
     }
   },
   created() {
@@ -16,3 +138,6 @@ export default {
   }
 }
 </script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 77 - 0
src/views/catenary/record/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns

+ 149 - 0
src/views/catenary/stand/CheckAndEditModel.vue

@@ -0,0 +1,149 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="700"
+    :visible="visible"
+    :mask-closable="false"
+    cancel-text="关闭"
+    @close="close"
+  >
+    <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
+      <a-form-model-item label="支柱号" prop="zzh">
+        <a-input v-model="model.zzh" />
+      </a-form-model-item>
+      <a-form-model-item label="所属部门" prop="bm">
+      </a-form-model-item>
+      <a-form-model-item label="线别" prop="xb">
+        <j-dict-select-tag
+          v-model="model.xb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="站场区间" prop="qj">
+        <j-dict-select-tag
+          v-model="model.qj"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="行别" prop="hb">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.hb"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="公里标" prop="glb">
+        <a-input v-model="model.glb" />
+      </a-form-model-item>
+      <a-form-model-item label="支柱类型" prop="zzlx">
+        <j-dict-select-tag
+          v-model="model.zzlx"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱型号" prop="zzxh">
+        <j-dict-select-tag
+          v-model="model.zzxh"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="支柱用途" prop="zzyt">
+        <j-dict-select-tag
+          v-model="model.zzyt"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="材质" prop="cz">
+        <j-dict-select-tag
+          v-model="model.cz"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+      <a-form-model-item label="直线/曲外/曲内" prop="zxqwqn">
+        <j-dict-select-tag
+          type="radioButton"
+          v-model="model.zxqwqn"
+          dict-code="word_type"
+        />
+      </a-form-model-item>
+    </a-form-model>
+  </j-modal>
+</template>
+<script>
+import { httpAction } from '@/api/request'
+import JModal from '@/components/JModal'
+export default {
+  name: 'CheckAndEditModel',
+  components: {
+    JModal
+  },
+  data() {
+    return {
+      labelCol: { span: 4 },
+      wrapperCol: { span: 19 },
+      dataSource: [],
+      title: '',
+      visible: false,
+      isCheck: false,
+      model: {},
+      validatorRules: {
+        name: [{ required: true, message: '请输入' }],
+        type: [{ required: true, message: '请选择' }]
+      },
+      url: {
+        add: '/business/catenary/bus/zzdzxx/add',
+        edit: '/business/catenary/bus/zzdzxx/update'
+      }
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.model = {}
+      this.visible = true
+    },
+    edit(record) {
+      debugger
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+    close(isSubmit) {
+      if (isSubmit) {
+        this.checkData()
+      } else {
+        this.visible = false
+      }
+    },
+    checkData() {
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          this.saveData()
+        } else {
+          return false
+        }
+      })
+    },
+    saveData() {
+      let url, type
+      if (!this.model.id) {
+        url = this.url.add
+        type = 'post'
+      } else {
+        debugger
+        url = this.url.edit
+        type = 'put'
+      }
+      httpAction(url, this.model, type).then((res) => {
+        if (res.code === 200) {
+          this.$message.success(res.msg)
+          this.$emit('ok')
+          this.visible = false
+        } else {
+          console.log(res)
+        }
+      })
+    }
+  }
+}
+</script>

+ 128 - 3
src/views/catenary/stand/index.vue

@@ -1,13 +1,135 @@
 <template>
-  <div class="app-container">
-  </div>
-</template>
+  <el-card style="margin: 15px">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.xb"
+            style="width: 150px"
+            placeholder="选择线别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.sb"
+            style="width: 150px"
+            placeholder="选择所别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.hb"
+            style="width: 150px"
+            placeholder="选择行别"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <j-dict-select-tag
+            v-model="queryParam.yy"
+            style="width: 150px"
+            placeholder="选择原因类型"
+            dict-code="sj_plan_status"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-input
+            v-model="queryParam.glb"
+            style="width: 150px"
+            placeholder="输入公里标"
+          />
+        </a-form-item>
+        <a-form-item>
+          <a-date-picker v-model="queryParam.date1" format="YYYY/MM/DD" placeholder="时间范围" />-
+          <a-date-picker v-model="queryParam.date2" format="YYYY/MM/DD" placeholder="时间范围" />
+        </a-form-item>
+        <a-form-item>
+          <a-button type="primary" @click="searchQuery">查询</a-button>
+          <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
+        </a-form-item>
+      </a-form>
+    </div>
+    <!-- 操作按钮区域 -->
+    <div class="table-operator" style="margin: 15px 0">
+      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
+      <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>
+      <a-upload name="file" :show-upload-list="false" :multiple="false" :headers="tokenHeader" :action="url.importExcelUrl" @change="handleImportExcel">
+        <a-button ghost type="danger" icon="import">导入</a-button>
+      </a-upload>
+
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
 
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        row-key="id"
+        :columns="columns"
+        :data-source="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange"
+      >
+
+        <span slot="action" slot-scope="text, record">
+          <a-button size="small" type="primary" @click="handleEdit(record)">
+            编辑
+          </a-button>
+          <a-divider type="vertical" />
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a-button size="small" type="danger">
+              删除
+            </a-button>
+          </a-popconfirm>
+        </span>
+      </a-table>
+      <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
+    </div>
+    <!-- table区域-end -->
+    <!-- 表单区域 -->
+  </el-card>
+</template>
 <script>
+import { listMixin } from '@/mixin/listMixin'
+import columns from './indexColumns'
+import CheckAndEditModel from './CheckAndEditModel'
 
 export default {
+  components: {
+    CheckAndEditModel
+  },
+  mixins: [listMixin],
   data() {
     return {
+      // 查询条件
+      queryParam: {},
+      // 表头
+      columns: columns(this),
+      url: {
+        list: '/business/catenary/bus/zzdzxx/list',
+        delete: '/business/catenary/bus/zzdzxx/',
+        exportXlsUrl: '/exportXlsUrl',
+        importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
+      }
     }
   },
   created() {
@@ -16,3 +138,6 @@ export default {
   }
 }
 </script>
+<style scoped>
+  @import '~@/assets/less/common.less'
+</style>

+ 77 - 0
src/views/catenary/stand/indexColumns.js

@@ -0,0 +1,77 @@
+function columns(vm) {
+  const cols = [
+    {
+      title: '序号',
+      key: 'rowIndex',
+      width: 60,
+      align: 'center',
+      customRender: function(t, r, index) {
+        return parseInt(index) + 1
+      }
+    },
+    {
+      title: '线别',
+      align: 'center',
+      dataIndex: 'xb',
+      key: 'xb'
+    },
+    {
+      title: '区间/站场',
+      align: 'center',
+      dataIndex: 'qj',
+      key: 'qj'
+    },
+    {
+      title: '车间/工区',
+      align: 'center',
+      dataIndex: 'bm',
+      key: 'bm'
+    },
+    {
+      title: '行别',
+      align: 'center',
+      dataIndex: 'hb',
+      key: 'hb'
+    },
+    {
+      title: '支柱号',
+      align: 'center',
+      dataIndex: 'zzh',
+      key: 'zzh'
+    },
+    {
+      title: '公里标',
+      align: 'center',
+      dataIndex: 'glb',
+      key: 'glb'
+    },
+    {
+      title: '规格型号',
+      align: 'center',
+      dataIndex: 'zzxh',
+      key: 'zzxh'
+    },
+    {
+      title: '支柱类型',
+      align: 'center',
+      dataIndex: 'zzlx',
+      key: 'zzlx'
+    },
+    {
+      title: '安装时间',
+      align: 'center',
+      dataIndex: 'ccrq',
+      key: 'ccrq'
+    },
+    {
+      title: '操作',
+      dataIndex: 'action',
+      align: 'center',
+      slots: { title: 'actionName' },
+      scopedSlots: { customRender: 'action' }
+    }
+  ]
+  return cols
+}
+
+export default columns