HistoryMis.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <template>
  2. <div style="margin-left: 20px;" 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 style="position: relative;">
  20. <el-table :data="tableData" style="width: 98%;height: calc(100vh - 340px);" 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="start_time" label="开始检测时间" sortable width="200">
  34. <template #default="scoped">
  35. <span>{{ scoped.row.start_time == '1970-01-01 00:00:00' ? '暂无检测时间' : scoped.row.start_time
  36. }}</span>
  37. </template>
  38. </el-table-column>
  39. <el-table-column prop="scd_name" label="SCD名称" width="auto" />
  40. <el-table-column prop="station_name" label="变电站" width="120" />
  41. <el-table-column prop="username" label="创建人" width="120" />
  42. <el-table-column prop="voltage_name" label="电压等级" width="120" />
  43. <el-table-column fixed="right" label="操作" width="120">
  44. <template #default="scoped">
  45. <!-- <el-popconfirm title="你确定删除吗?" @confirm="sureDelMis">
  46. <template #reference> -->
  47. <el-button v-if="scoped.row.state == '2' || scoped.row.state == '3'" link type="primary" size="small"
  48. @click="relady(scoped.row)">重新检测</el-button>
  49. <el-button v-if="scoped.row.state != '1'" link type="danger" size="small"
  50. @click="delMis(scoped.row)">删除</el-button>
  51. <!-- <el-button v-if="scoped.row.state == '2'" link type="primary" size="small"
  52. @click="relady(scoped.row)">重新检测</el-button>
  53. <el-button v-if="scoped.row.state != '1'" link type="danger" size="small"
  54. @click="delMis(scoped.row)">删除</el-button> -->
  55. <!-- </template>
  56. </el-popconfirm> -->
  57. </template>
  58. </el-table-column>
  59. </el-table>
  60. <PageNation :totals="totals" :pageNum="pageNum" :pageSize="pageSize" @pageBack="pageBack"
  61. @currentBack="currentBack">
  62. </PageNation>
  63. </div>
  64. <DelHistory v-if="delModal" :delModal="delModal" :delId="delId" :reload="reload" @delBack="delBack">
  65. </DelHistory>
  66. </div>
  67. </template>
  68. <script>
  69. import { ref, onMounted, watch, toRefs } from 'vue';
  70. import moment from 'moment';
  71. import PageNation from './PageNation.vue';
  72. import DelHistory from '../modalComp/DelHistory.vue';
  73. import task from '@/api/task';
  74. import { ElMessage } from 'element-plus';
  75. export default {
  76. setup() {
  77. let tableData = ref([])//表格内容
  78. let pageNum = ref(1)//页码
  79. let pageSize = ref(10)//页数
  80. let totals = ref(0)//总数
  81. let getTime = ref('')//时间选择器
  82. let startTime = ref("")//开始时间
  83. let endTime = ref("")//结束时间
  84. let names = ref('')//根据名称
  85. let delId = ref(0)//需要删除的id
  86. let delModal = ref(false)//删除模态框状态
  87. let loading = ref(false)
  88. function reload() {
  89. loading.value = true
  90. task.getTask({ pageno: 1, pagesize: 10 }).then(res => {
  91. if (res.code == 0) {
  92. tableData.value = res.data
  93. totals.value = res.count
  94. loading.value = false
  95. }
  96. })
  97. }
  98. function record() {
  99. names.value = ''
  100. startTime.value = ''
  101. endTime.value = ''
  102. getTime.value = ''
  103. pageNum.value = 1
  104. task.getTask({ pageno: 1, pagesize: 10 }).then(res => {
  105. tableData.value = res.data
  106. totals.value = res.count
  107. })
  108. }
  109. function filterState(num) {
  110. if (num == 0) {
  111. return "未检测"
  112. } else if (num == 1) {
  113. return "检测中"
  114. } else if (num == 2) {
  115. return "检测结束"
  116. } else if (num == 3) {
  117. return "检测中断"
  118. }
  119. }
  120. function searchMis() {
  121. task.getTask({
  122. pageno: 1,
  123. pagesize: 10,
  124. name: names.value,
  125. start_time: startTime.value,
  126. end_time: endTime.value
  127. }).then(res => {
  128. tableData.value = res.data
  129. totals.value = res.count
  130. })
  131. }
  132. function timeChange(e) {
  133. if (e == null) {
  134. return
  135. } else {
  136. let a = moment(e[0]).format("YYYY-MM-DD")//开始时间
  137. let b = moment(e[1]).format("YYYY-MM-DD")//结束时间
  138. startTime.value = a
  139. endTime.value = b
  140. }
  141. }
  142. function delMis(e) {
  143. delId.value = e.id
  144. delModal.value = true
  145. }
  146. function relady(row) {
  147. task.reladyTask({
  148. id: row.id
  149. }).then(res => {
  150. if (res.code == 0) {
  151. ElMessage({
  152. message: "任务已重置",
  153. type: "success"
  154. })
  155. reload()
  156. } else {
  157. ElMessage({
  158. message: res.msg,
  159. type: "error"
  160. })
  161. }
  162. })
  163. }
  164. function sureDelMis() {
  165. }
  166. function pageBack(data) {
  167. tableData.value = data
  168. }
  169. function delBack(data) {
  170. delModal.value = data
  171. }
  172. function currentBack(data) {
  173. pageNum.value = data
  174. }
  175. onMounted(() => {
  176. reload()
  177. })
  178. return {
  179. reload,//初始化组件
  180. tableData,//表格数据
  181. filterState,//筛选状态
  182. totals,
  183. pageNum,
  184. pageSize,
  185. pageBack,//分页组件返回数据
  186. getTime,
  187. names,
  188. searchMis,//查询按钮
  189. timeChange,//时间选择器change事件
  190. startTime,//开始时间
  191. endTime,//结束时间
  192. delMis,//删除任务
  193. sureDelMis,//确认删除
  194. delModal,//删除模态框的状态
  195. delBack,//DelHistory.vue返回模态框状态
  196. delId,
  197. record,
  198. totals,//总条数
  199. relady,//重新检测
  200. loading,
  201. currentBack,
  202. }
  203. },
  204. components: {
  205. PageNation,
  206. DelHistory,
  207. }
  208. }
  209. </script>
  210. <style lang="scss" scoped></style>