HistoryMis.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <template>
  2. <div style="margin-left: 20px;position: relative;" v-loading="loading">
  3. <div style="display: flex;justify-content: flex-start;align-items: center;">
  4. <div style="margin-right: 20px;">
  5. <span>名称:</span>
  6. <el-input v-model="names" style="width: 200px;" placeholder="请输入名称"></el-input>
  7. </div>
  8. <div style="margin-right: 20px;">
  9. <span>时间:</span>
  10. <el-date-picker v-model="getTime" @change="timeChange" type="datetimerange" start-placeholder="开始时间"
  11. end-placeholder="结束时间" format="YYYY-MM-DD HH:mm:ss" date-format="YYYY/MM/DD ddd"
  12. time-format="A hh:mm:ss" />
  13. </div>
  14. <div>
  15. <el-button @click="searchMis" type="primary">查询</el-button>
  16. <el-button @click="record">重置</el-button>
  17. </div>
  18. </div>
  19. <div>
  20. <el-table :data="tableData" style="width: 98%" stripe>
  21. <el-table-column fixed label="序号" width="150">
  22. <template #default="scope">
  23. {{ scope.$index + 1 }}
  24. </template>
  25. </el-table-column>
  26. <el-table-column prop="name" label="任务名称" width="200" />
  27. <el-table-column label="状态" width="120">
  28. <template #default="scoped">
  29. {{ filterState(scoped.row.state) }}
  30. </template>
  31. </el-table-column>
  32. <el-table-column prop="ct" label="创建时间" width="200" />
  33. <el-table-column prop="scd_name" label="SCD名称" width="auto" />
  34. <el-table-column prop="station_name" label="变电站" width="120" />
  35. <el-table-column prop="username" label="创建人" width="120" />
  36. <el-table-column prop="voltage_name" label="电压等级" width="120" />
  37. <el-table-column fixed="right" label="操作" width="120">
  38. <template #default="scoped">
  39. <!-- <el-popconfirm title="你确定删除吗?" @confirm="sureDelMis">
  40. <template #reference> -->
  41. <el-button link type="primary" size="small" @click="relady(scoped.row)">重新检测</el-button>
  42. <el-button link type="danger" size="small" @click="delMis(scoped.row)">删除</el-button>
  43. <!-- </template>
  44. </el-popconfirm> -->
  45. </template>
  46. </el-table-column>
  47. </el-table>
  48. </div>
  49. <div>
  50. <PageNation :totals="totals" :pageNum="pageNum" :pageSize="pageSize" @pageBack="pageBack"
  51. style="position: absolute;top: 750px;right: 50px;"></PageNation>
  52. <DelHistory v-if="delModal" :delModal="delModal" :delId="delId" :reload="reload" @delBack="delBack">
  53. </DelHistory>
  54. </div>
  55. </div>
  56. </template>
  57. <script>
  58. import { ref, onMounted, watch, toRefs } from 'vue';
  59. import moment from 'moment';
  60. import PageNation from './PageNation.vue';
  61. import DelHistory from '../modalComp/DelHistory.vue';
  62. import task from '@/api/task';
  63. import { ElMessage } from 'element-plus';
  64. export default {
  65. setup() {
  66. let tableData = ref([])//表格内容
  67. let pageNum = ref(1)//页码
  68. let pageSize = ref(10)//页数
  69. let totals = ref(0)//总数
  70. let getTime = ref('')//时间选择器
  71. let startTime = ref("")//开始时间
  72. let endTime = ref("")//结束时间
  73. let names = ref('')//根据名称
  74. let delId = ref(0)//需要删除的id
  75. let delModal = ref(false)//删除模态框状态
  76. let loading = ref(false)
  77. function reload() {
  78. loading.value = true
  79. task.getTask({ pageno: 1, pagesize: 999999 }).then(res => {
  80. if (res.code == 0) {
  81. tableData.value = res.data
  82. totals.value = res.count
  83. loading.value = false
  84. }
  85. })
  86. }
  87. function record() {
  88. names.value = ''
  89. startTime.value = ''
  90. endTime.value = ''
  91. getTime.value = ''
  92. task.getTask({ pageno: 1, pagesize: 999999 }).then(res => {
  93. tableData.value = res.data
  94. totals.value = res.count
  95. })
  96. }
  97. function filterState(num) {
  98. if (num == 0) {
  99. return "未检测"
  100. } else if (num == 1) {
  101. return "检测中"
  102. } else if (num == 2) {
  103. return "检测结束"
  104. } else if (num == 3) {
  105. return "检测中断"
  106. }
  107. }
  108. function searchMis() {
  109. task.getTask({
  110. pageno: 1,
  111. pagesize: 20,
  112. name: names.value,
  113. start_time: startTime.value,
  114. end_time: endTime.value
  115. }).then(res => {
  116. tableData.value = res.data
  117. })
  118. }
  119. function timeChange(e) {
  120. if (e == null) {
  121. return
  122. } else {
  123. let a = moment(e[0]).format("YYYY-MM-DD")//开始时间
  124. let b = moment(e[1]).format("YYYY-MM-DD")//结束时间
  125. startTime.value = a
  126. endTime.value = b
  127. }
  128. }
  129. function delMis(e) {
  130. delId.value = e.id
  131. delModal.value = true
  132. }
  133. function relady(row) {
  134. task.reladyTask({
  135. id:row.id
  136. }).then(res=>{
  137. if(res.code ==0){
  138. ElMessage({
  139. message:"任务已重置,请前往当前检测任务查看!",
  140. type:"success"
  141. })
  142. reload()
  143. }else{
  144. ElMessage({
  145. message:res.msg,
  146. type:"error"
  147. })
  148. }
  149. })
  150. }
  151. function sureDelMis() {
  152. }
  153. function pageBack(data) {
  154. tableData.value = data
  155. }
  156. function delBack(data) {
  157. delModal.value = data
  158. }
  159. onMounted(() => {
  160. reload()
  161. })
  162. return {
  163. reload,//初始化组件
  164. tableData,//表格数据
  165. filterState,//筛选状态
  166. totals,
  167. pageNum,
  168. pageSize,
  169. pageBack,//分页组件返回数据
  170. getTime,
  171. names,
  172. searchMis,//查询按钮
  173. timeChange,//时间选择器change事件
  174. startTime,//开始时间
  175. endTime,//结束时间
  176. delMis,//删除任务
  177. sureDelMis,//确认删除
  178. delModal,//删除模态框的状态
  179. delBack,//DelHistory.vue返回模态框状态
  180. delId,
  181. record,
  182. totals,//总条数
  183. relady,//重新检测
  184. loading,
  185. }
  186. },
  187. components: {
  188. PageNation,
  189. DelHistory,
  190. }
  191. }
  192. </script>
  193. <style lang="scss" scoped></style>