Company.vue 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <style lang="scss">
  2. </style>
  3. <template>
  4. <section>
  5. <p>公司管理 > 公司列表</p>
  6. <div class="filter">
  7. <el-form label-width="70px" :inline="true" size="small" label-position="left">
  8. <el-form-item label="企业名称">
  9. <el-input clearable placeholder="请输入企业名称" v-model="form.name"></el-input>
  10. </el-form-item>
  11. <el-form-item label="企业区域">
  12. <el-select clearable v-model="form.area" placeholder="请选择">
  13. <el-option v-for="(item,index) in area" :key="index" :label="item" :value="item"></el-option>
  14. </el-select>
  15. </el-form-item>
  16. <el-form-item label="企业类型">
  17. <el-select clearable v-model="form.category" placeholder="请选择">
  18. <el-option v-for="(item,index) in category" :key="index" :label="item" :value="item"></el-option>
  19. </el-select>
  20. </el-form-item>
  21. <el-form-item>
  22. <el-button @click="form.page=1,getData()" type="primary" icon="el-icon-search">搜索</el-button>
  23. <el-button v-if='utype!=2&&utype!=1' icon="el-icon-plus" @click="$router.push({path:'/company/add'})" type="primary">创建公司</el-button>
  24. </el-form-item>
  25. </el-form>
  26. </div>
  27. <el-table
  28. class="table"
  29. :data="list" height="64vh"
  30. border v-loading="loading"
  31. default-expand-all row-key="id"
  32. :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
  33. style="width: 100%">
  34. <!-- <el-table-column
  35. type="selection" fixed="left"
  36. width="40">
  37. </el-table-column> -->
  38. <el-table-column
  39. prop="name" width="300"
  40. label="公司名称">
  41. </el-table-column>
  42. <el-table-column
  43. prop="username" width="300"
  44. label="账号">
  45. </el-table-column>
  46. <el-table-column
  47. prop="area"
  48. label="区域">
  49. </el-table-column>
  50. <el-table-column
  51. prop="parent_name"
  52. label="上级单位">
  53. </el-table-column>
  54. <el-table-column
  55. prop="category"
  56. label="企业类型">
  57. </el-table-column>
  58. <el-table-column
  59. prop="remark" width="70px"
  60. label="状态">
  61. <template slot-scope="scope">
  62. <el-tag v-if='scope.row.is_active' type="success">启用</el-tag>
  63. <el-tag v-else type="danger">停用</el-tag>
  64. </template>
  65. </el-table-column>
  66. <el-table-column
  67. prop="ctime" width="200"
  68. label="时间">
  69. </el-table-column>
  70. <el-table-column fixed="right"
  71. prop="zip" width="160"
  72. label="操作">
  73. <template slot-scope="scope">
  74. <el-tooltip class="item" effect="dark" content="查看巡检记录" placement="top-start">
  75. <el-button icon="el-icon-document" size="mini" @click="prview(scope.row.id)" type="success"></el-button>
  76. </el-tooltip>
  77. <el-tooltip class="item" effect="dark" content="查看" placement="top-start">
  78. <el-button icon="el-icon-view" size="mini" @click="detail(scope.row.id)" type="success"></el-button>
  79. </el-tooltip>
  80. <el-tooltip class="item" effect="dark" content="编辑" placement="top-start">
  81. <el-button icon="el-icon-edit" @click="$router.push({path:'/company/add',query:{id:scope.row.id}})" size="mini" type="warning"></el-button>
  82. </el-tooltip>
  83. <el-tooltip class="item" effect="dark" content="删除" placement="top-start">
  84. <el-button icon="el-icon-delete" @click="del(scope.row.id)" size="mini" type="danger"></el-button>
  85. </el-tooltip>
  86. </template>
  87. </el-table-column>
  88. </el-table>
  89. <Page ref="pageButton" :current='form.page' :page_size='form.page_size' :total='total' @pageChange='gopage'/>
  90. <el-dialog title="巡检记录" :visible.sync="dialogFormVisible1" width="80%" :close-on-click-modal='false' :close-on-press-escape='false'>
  91. <el-table
  92. class="table"
  93. :data="data" height="400px"
  94. border
  95. style="width: 100%">
  96. <el-table-column
  97. prop="enterprise_name"
  98. label="公司名称">
  99. </el-table-column>
  100. <el-table-column
  101. prop="name"
  102. label="任务名称">
  103. </el-table-column>
  104. <el-table-column
  105. prop="content"
  106. label="任务状态">
  107. <template slot-scope="scope">
  108. <span v-if="scope.row.task_status==-1">过期未巡检</span>
  109. <span v-if="scope.row.task_status==0">待巡检</span>
  110. <span v-if="scope.row.task_status==1">无异常</span>
  111. <span v-if="scope.row.task_status==2">待审核</span>
  112. <span v-if="scope.row.task_status==3">审核中</span>
  113. <span v-if="scope.row.task_status==4">整改中</span>
  114. </template>
  115. </el-table-column>
  116. <el-table-column
  117. prop="report_person_name"
  118. label="上报人">
  119. </el-table-column>
  120. <el-table-column
  121. prop="ctime"
  122. label="上报时间">
  123. <!-- <template>
  124. <el-tag type="success">启用</el-tag>
  125. </template> -->
  126. </el-table-column>
  127. <el-table-column fixed="right"
  128. prop="zip" width="100"
  129. label="操作">
  130. <template slot-scope="scope">
  131. <el-button icon="el-icon-view" @click="open(scope.row)" size="mini" type="success">查看</el-button>
  132. <!-- <el-button icon="el-icon-delete" @click="del(scope.row.id)" size="mini" type="danger">删除</el-button> -->
  133. </template>
  134. </el-table-column>
  135. </el-table>
  136. <Page ref="pageButton1" :current='form1.page' :page_size='form1.page_size' :total='total1' @pageChange='gopage1'/>
  137. </el-dialog>
  138. </section>
  139. </template>
  140. <script>
  141. import Page from '../../components/Page';
  142. export default {
  143. components:{
  144. Page
  145. },
  146. data(){
  147. return{
  148. form:{name:'',page:1,page_size:20},
  149. form1:{page:1,page_size:20},
  150. activeName:"1",
  151. dialogFormVisible1:false,
  152. total:1,
  153. total1:1,
  154. data:[],
  155. list:[{name:'2333'}],
  156. loading:false,
  157. category:[],
  158. area:[],
  159. utype:0
  160. }
  161. },
  162. methods:{
  163. gopage(size){
  164. if(size){
  165. this.form.page_size=size
  166. }
  167. this.form.page=this.$refs.pageButton.page
  168. this.getData()
  169. },
  170. gopage1(size){
  171. if(size){
  172. this.form1.page_size=size
  173. }
  174. this.form1.page=this.$refs.pageButton1.page
  175. this.getJl()
  176. },
  177. prview(id){
  178. this.form1.enterprise_id=id;
  179. this.getJl();
  180. this.dialogFormVisible1=true
  181. },
  182. getJl(){
  183. var parm=this.form1;
  184. this.$api.getMonitjobList(parm).then(res=>{
  185. this.data=res.data.data.list
  186. this.total1=res.data.data.total
  187. })
  188. },
  189. detail(id){
  190. this.$router.push({ path: '/company/detail', query: { id: id,page:this.form.page,page_size:this.form.page_size } });
  191. },
  192. getData(){
  193. var parm=this.form;
  194. this.loading=true
  195. this.$api.getEnterpriseList(parm).then(res=>{
  196. this.list=res.data.data.list;
  197. // list.forEach(item => {
  198. // if(item.children.length>0){
  199. // item.hasChildren=true
  200. // }else{
  201. // item.hasChildren=false
  202. // }
  203. // });
  204. this.total=res.data.data.total
  205. this.loading=false
  206. this.area=this.store.area;
  207. this.category=this.store.categorys;
  208. })
  209. },
  210. del(id){
  211. this.$confirm('确定删除吗', '提示', {
  212. type: 'warning'
  213. }).then(() => {
  214. this.$api.deleteEnterprise({id:id}).then((res)=>{
  215. this.$message({
  216. message: '删除成功',
  217. type: 'success'
  218. })
  219. this.getData()
  220. })
  221. })
  222. },
  223. permission(name){
  224. let permissions=this.info.permissions||[];
  225. let list=[];
  226. for(let i=0;i<permissions.length;i++){
  227. list.push(permissions[i].name)
  228. }
  229. if(list.indexOf(name)<0){
  230. return false;
  231. }else{
  232. return true;
  233. }
  234. },
  235. },
  236. created(){
  237. let page = this.$route.query.page,page_size = this.$route.query.page_size;
  238. if(page){
  239. this.form.page = Number(page);
  240. this.form.page_size = Number(page_size);
  241. }
  242. this.getData()
  243. this.utype=localStorage.getItem('utype')
  244. }
  245. }
  246. </script>