plm前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

337 lines
10 KiB

2 years ago
  1. <script>
  2. import {selectCollectHistoryDetailList, selectCollectHistoryList} from "../../../api/cdc/collect";
  3. const tableId = "2000004"
  4. const table1 = tableId + "Table1"
  5. const tableName = "数据预警历史"
  6. export default {
  7. name: "collectRecord",
  8. props:{
  9. height:{
  10. type:Number,
  11. default:700
  12. },
  13. component:{
  14. type:Boolean,
  15. default:false
  16. }
  17. },
  18. data(){
  19. return{
  20. // 遮罩层
  21. loading: true,
  22. // 设备信息表格数据
  23. infoList: [],
  24. // 弹出层标题
  25. title: tableName,
  26. // 是否显示弹出层
  27. open: false,
  28. // 查询参数
  29. queryParams: {
  30. deviceNo: '',
  31. deviceDesc: null,
  32. deviceType: "",
  33. collectType: "",
  34. startDate: "",
  35. endDate: "",
  36. },
  37. form:{
  38. },
  39. collectHistoryColumns:[
  40. {
  41. userId: this.$store.state.user.name,
  42. functionId: tableId,
  43. serialNumber: `${table1}CollectType`,
  44. tableId: table1,
  45. tableName: tableName,
  46. columnProp: 'collectType',
  47. headerAlign: 'center',
  48. align: 'center',
  49. columnLabel: '预警类型',
  50. columnHidden: false,
  51. columnImage: false,
  52. columnSortable: false,
  53. sortLv: 0,
  54. status: true,
  55. fixed: '',
  56. columnWidth: 100
  57. },
  58. {
  59. userId: this.$store.state.user.name,
  60. functionId: tableId,
  61. serialNumber: `${table1}CreateTime`,
  62. tableId: table1,
  63. tableName: tableName,
  64. columnProp: 'createTime',
  65. headerAlign: 'center',
  66. align: 'center',
  67. columnLabel: '预警时间',
  68. columnHidden: false,
  69. columnImage: false,
  70. columnSortable: false,
  71. sortLv: 0,
  72. status: true,
  73. fixed: '',
  74. columnWidth: 120
  75. },{
  76. userId: this.$store.state.user.name,
  77. functionId: tableId,
  78. serialNumber: `${table1}DeviceNo`,
  79. tableId: table1,
  80. tableName: tableName,
  81. columnProp: 'deviceNo',
  82. headerAlign: 'center',
  83. align: 'left',
  84. columnLabel: '设备号',
  85. columnHidden: false,
  86. columnImage: false,
  87. columnSortable: false,
  88. sortLv: 0,
  89. status: true,
  90. fixed: '',
  91. columnWidth: 100
  92. },{
  93. userId: this.$store.state.user.name,
  94. functionId: tableId,
  95. serialNumber: `${table1}DeviceDesc`,
  96. tableId: table1,
  97. tableName: tableName,
  98. columnProp: 'deviceDesc',
  99. headerAlign: 'center',
  100. align: 'left',
  101. columnLabel: '设备描述',
  102. columnHidden: false,
  103. columnImage: false,
  104. columnSortable: false,
  105. sortLv: 0,
  106. status: true,
  107. fixed: '',
  108. columnWidth: 120
  109. },{
  110. userId: this.$store.state.user.name,
  111. functionId: tableId,
  112. serialNumber: `${table1}CollectId`,
  113. tableId: table1,
  114. tableName: tableName,
  115. columnProp: 'collectId',
  116. headerAlign: 'center',
  117. align: 'left',
  118. columnLabel: '数据标识ID',
  119. columnHidden: false,
  120. columnImage: false,
  121. columnSortable: false,
  122. sortLv: 0,
  123. status: true,
  124. fixed: '',
  125. columnWidth: 100
  126. },{
  127. userId: this.$store.state.user.name,
  128. functionId: tableId,
  129. serialNumber: `${table1}CollectDesc`,
  130. tableId: table1,
  131. tableName: tableName,
  132. columnProp: 'collectDesc',
  133. headerAlign: 'center',
  134. align: 'left',
  135. columnLabel: '数据标识描述',
  136. columnHidden: false,
  137. columnImage: false,
  138. columnSortable: false,
  139. sortLv: 0,
  140. status: true,
  141. fixed: '',
  142. columnWidth: 120
  143. },{
  144. userId: this.$store.state.user.name,
  145. functionId: tableId,
  146. serialNumber: `${table1}ItemValue`,
  147. tableId: table1,
  148. tableName: tableName,
  149. columnProp: 'itemValue',
  150. headerAlign: 'center',
  151. align: 'right',
  152. columnLabel: '数据实测值',
  153. columnHidden: false,
  154. columnImage: false,
  155. columnSortable: false,
  156. sortLv: 0,
  157. status: true,
  158. fixed: '',
  159. columnWidth: 120
  160. },
  161. ],
  162. detailList:[],
  163. }
  164. },
  165. methods:{
  166. handleQuery(){
  167. let params = {
  168. ...this.queryParams,
  169. site:this.$store.state.user.site,
  170. }
  171. this.loading = true
  172. this.infoList = []
  173. selectCollectHistoryList(params).then(({data})=>{
  174. if (data && data.code === 0){
  175. this.infoList = data.rows
  176. }else {
  177. this.$message.warning(data.msg)
  178. }
  179. this.loading = false
  180. }).catch(error=>{
  181. this.loading = false
  182. this.$message.error(error)
  183. })
  184. },
  185. handleDetail(row){
  186. this.form = {...row}
  187. let params = {
  188. ...row,
  189. collectHistoryId: row.itemNo,
  190. }
  191. this.detailList = [];
  192. selectCollectHistoryDetailList(params).then(({data})=>{
  193. if (data && data.code === 0){
  194. this.open = true
  195. this.detailList = data.rows
  196. }else {
  197. this.$message.warning(data.msg)
  198. }
  199. }).catch((error)=>{
  200. this.$message.error(error)
  201. })
  202. },
  203. },
  204. watch:{
  205. "queryParams.deviceNo"(newVal, oldVal){
  206. this.queryParams.deviceNo = newVal.toUpperCase()
  207. }
  208. },
  209. created() {
  210. this.handleQuery();
  211. }
  212. }
  213. </script>
  214. <template>
  215. <div class="app-container">
  216. <el-form :model="queryParams" label-position="top" ref="queryForm" :inline="true" label-width="68px">
  217. <el-form-item label="设备类型" prop="deviceType">
  218. <el-select v-model="queryParams.deviceType" placeholder="请选择设备类型" >
  219. <el-option label="全部" value=""/>
  220. <el-option label="涂布机器-大线" value="涂布机器-大线"/>
  221. <el-option label="涂布机器-小线" value="涂布机器-小线"/>
  222. <el-option label="涂布机器-浓度-大线" value="涂布机器-浓度-大线"/>
  223. <el-option label="涂布机器-浓度-小线" value="涂布机器-浓度-小线"/>
  224. <el-option label="配胶间设备" value="配胶间设备"/>
  225. </el-select>
  226. </el-form-item>
  227. <el-form-item label="设备号" prop="deviceNo">
  228. <el-input
  229. v-model="queryParams.deviceNo"
  230. placeholder=" "
  231. clearable
  232. />
  233. </el-form-item>
  234. <el-form-item label="设备描述" prop="deviceDesc">
  235. <el-input
  236. v-model="queryParams.deviceDesc"
  237. style="width: 200px"
  238. placeholder=" "
  239. clearable
  240. />
  241. </el-form-item>
  242. <el-form-item label="采集日期" prop="startDate">
  243. <el-date-picker
  244. type="date"
  245. style="width: 100%"
  246. value-format="yyyy-MM-dd"
  247. v-model="queryParams.startDate"
  248. placeholder=" "
  249. />
  250. </el-form-item>
  251. <el-form-item label=" ">
  252. <i class="el-icon-right"></i>
  253. </el-form-item>
  254. <el-form-item label=" " prop="endDate">
  255. <el-date-picker
  256. type="date"
  257. style="width: 100%"
  258. v-model="queryParams.endDate"
  259. value-format="yyyy-MM-dd"
  260. placeholder=" "
  261. />
  262. </el-form-item>
  263. <el-form-item label="预警类型" prop="endDate">
  264. <el-select v-model="queryParams.collectType" placeholder=" ">
  265. <el-option label="全部" value=""/>
  266. <el-option label="手机短信" value="手机短信"/>
  267. <el-option label="邮箱" value="邮箱"/>
  268. </el-select>
  269. </el-form-item>
  270. <el-form-item label=" ">
  271. <el-button type="primary" @click="handleQuery" plain>查询</el-button>
  272. </el-form-item>
  273. </el-form>
  274. <el-table v-loading="loading" border :data="infoList" :height="height">
  275. <el-table-column
  276. v-for="(item,index) in collectHistoryColumns" :key="index"
  277. :sortable="item.columnSortable"
  278. :prop="item.columnProp"
  279. :header-align="item.headerAlign"
  280. :show-overflow-tooltip="item.showOverflowTooltip"
  281. :align="item.align"
  282. :fixed="item.fixed === ''?false:item.fixed"
  283. :min-width="item.columnWidth"
  284. :label="item.columnLabel">
  285. <template slot-scope="scope">
  286. <span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
  287. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  288. </template>
  289. </el-table-column>
  290. <el-table-column label="操作" width="100" align="center">
  291. <template slot-scope="scope">
  292. <el-link @click="handleDetail(scope.row)">人员</el-link>
  293. </template>
  294. </el-table-column>
  295. </el-table>
  296. <el-dialog :title="title+'-人员'" v-drag :visible.sync="open" width="600px">
  297. <el-form :model="form" label-position="top" ref="form">
  298. <el-row :gutter="10">
  299. <el-col :span="5">
  300. <el-form-item label="数据标识ID">
  301. <el-input v-model="form.collectId" disabled></el-input>
  302. </el-form-item>
  303. </el-col>
  304. <el-col :span="9">
  305. <el-form-item label="数据标识描述">
  306. <el-input v-model="form.collectDesc" disabled></el-input>
  307. </el-form-item>
  308. </el-col>
  309. <el-col :span="5">
  310. <el-form-item label="上限值">
  311. <el-input-number :controls="false" v-model="form.maxValue" disabled></el-input-number>
  312. </el-form-item>
  313. </el-col>
  314. <el-col :span="5">
  315. <el-form-item label="下限值">
  316. <el-input-number :controls="false" v-model="form.minValue" disabled></el-input-number>
  317. </el-form-item>
  318. </el-col>
  319. </el-row>
  320. </el-form>
  321. <el-table :data="detailList" border :height="300">
  322. <el-table-column label="人员" min-width="100" header-align="center" align="left" prop="username"></el-table-column>
  323. <el-table-column label="邮件/手机号" min-width="200" header-align="center" align="left" prop="itemValue"></el-table-column>
  324. <el-table-column label="类型" min-width="100" header-align="center" align="left" prop="collectType"></el-table-column>
  325. </el-table>
  326. </el-dialog>
  327. </div>
  328. </template>
  329. <style scoped>
  330. </style>