index.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. <template>
  2. <ContentWrap>
  3. <!-- 搜索工作栏 -->
  4. <el-form
  5. class="-mb-15px"
  6. :model="queryParams"
  7. ref="queryFormRef"
  8. :inline="true"
  9. label-width="68px"
  10. >
  11. <el-form-item label="施工队伍id" prop="deptId">
  12. <el-input
  13. v-model="queryParams.deptId"
  14. placeholder="请输入施工队伍id"
  15. clearable
  16. @keyup.enter="handleQuery"
  17. class="!w-240px"
  18. />
  19. </el-form-item>
  20. <el-form-item label="项目id" prop="projectId">
  21. <el-input
  22. v-model="queryParams.projectId"
  23. placeholder="请输入项目id"
  24. clearable
  25. @keyup.enter="handleQuery"
  26. class="!w-240px"
  27. />
  28. </el-form-item>
  29. <el-form-item label="任务id" prop="taskId">
  30. <el-input
  31. v-model="queryParams.taskId"
  32. placeholder="请输入任务id"
  33. clearable
  34. @keyup.enter="handleQuery"
  35. class="!w-240px"
  36. />
  37. </el-form-item>
  38. <el-form-item label="项目类别(钻井 修井 注氮 酸化压裂... )" prop="projectClassification">
  39. <el-input
  40. v-model="queryParams.projectClassification"
  41. placeholder="请输入项目类别(钻井 修井 注氮 酸化压裂... )"
  42. clearable
  43. @keyup.enter="handleQuery"
  44. class="!w-240px"
  45. />
  46. </el-form-item>
  47. <el-form-item label="搬迁安装天数" prop="relocationDays">
  48. <el-input
  49. v-model="queryParams.relocationDays"
  50. placeholder="请输入搬迁安装天数"
  51. clearable
  52. @keyup.enter="handleQuery"
  53. class="!w-240px"
  54. />
  55. </el-form-item>
  56. <el-form-item label="运行时效" prop="transitTime">
  57. <el-date-picker
  58. v-model="queryParams.transitTime"
  59. value-format="YYYY-MM-DD HH:mm:ss"
  60. type="daterange"
  61. start-placeholder="开始日期"
  62. end-placeholder="结束日期"
  63. :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
  64. class="!w-220px"
  65. />
  66. </el-form-item>
  67. <el-form-item label="当日注气量(万方)" prop="dailyGasInjection">
  68. <el-input
  69. v-model="queryParams.dailyGasInjection"
  70. placeholder="请输入当日注气量(万方)"
  71. clearable
  72. @keyup.enter="handleQuery"
  73. class="!w-240px"
  74. />
  75. </el-form-item>
  76. <el-form-item label="当日注水量(方)" prop="dailyWaterInjection">
  77. <el-input
  78. v-model="queryParams.dailyWaterInjection"
  79. placeholder="请输入当日注水量(方)"
  80. clearable
  81. @keyup.enter="handleQuery"
  82. class="!w-240px"
  83. />
  84. </el-form-item>
  85. <el-form-item label="当日注气时间(H)" prop="dailyInjectGasTime">
  86. <el-date-picker
  87. v-model="queryParams.dailyInjectGasTime"
  88. value-format="YYYY-MM-DD HH:mm:ss"
  89. type="daterange"
  90. start-placeholder="开始日期"
  91. end-placeholder="结束日期"
  92. :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
  93. class="!w-220px"
  94. />
  95. </el-form-item>
  96. <el-form-item label="当日注水时间(H)" prop="dailyInjectWaterTime">
  97. <el-date-picker
  98. v-model="queryParams.dailyInjectWaterTime"
  99. value-format="YYYY-MM-DD HH:mm:ss"
  100. type="daterange"
  101. start-placeholder="开始日期"
  102. end-placeholder="结束日期"
  103. :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
  104. class="!w-220px"
  105. />
  106. </el-form-item>
  107. <el-form-item label="非生产时间(H)" prop="nonProductionTime">
  108. <el-date-picker
  109. v-model="queryParams.nonProductionTime"
  110. value-format="YYYY-MM-DD HH:mm:ss"
  111. type="daterange"
  112. start-placeholder="开始日期"
  113. end-placeholder="结束日期"
  114. :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
  115. class="!w-220px"
  116. />
  117. </el-form-item>
  118. <el-form-item label="非生产时间原因" prop="nptReason">
  119. <el-input
  120. v-model="queryParams.nptReason"
  121. placeholder="请输入非生产时间原因"
  122. clearable
  123. @keyup.enter="handleQuery"
  124. class="!w-240px"
  125. />
  126. </el-form-item>
  127. <el-form-item label="施工开始日期" prop="constructionStartDate">
  128. <el-date-picker
  129. v-model="queryParams.constructionStartDate"
  130. value-format="YYYY-MM-DD HH:mm:ss"
  131. type="daterange"
  132. start-placeholder="开始日期"
  133. end-placeholder="结束日期"
  134. :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
  135. class="!w-220px"
  136. />
  137. </el-form-item>
  138. <el-form-item label="施工结束日期" prop="constructionEndDate">
  139. <el-date-picker
  140. v-model="queryParams.constructionEndDate"
  141. value-format="YYYY-MM-DD HH:mm:ss"
  142. type="daterange"
  143. start-placeholder="开始日期"
  144. end-placeholder="结束日期"
  145. :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
  146. class="!w-220px"
  147. />
  148. </el-form-item>
  149. <el-form-item label="当日生产情况生产动态" prop="productionStatus">
  150. <el-select
  151. v-model="queryParams.productionStatus"
  152. placeholder="请选择当日生产情况生产动态"
  153. clearable
  154. class="!w-240px"
  155. >
  156. <el-option label="请选择字典生成" value="" />
  157. </el-select>
  158. </el-form-item>
  159. <el-form-item label="下步工作计划" prop="nextPlan">
  160. <el-input
  161. v-model="queryParams.nextPlan"
  162. placeholder="请输入下步工作计划"
  163. clearable
  164. @keyup.enter="handleQuery"
  165. class="!w-240px"
  166. />
  167. </el-form-item>
  168. <el-form-item label="施工状态(动迁 准备 施工 完工)" prop="constructionStatus">
  169. <el-select
  170. v-model="queryParams.constructionStatus"
  171. placeholder="请选择施工状态(动迁 准备 施工 完工)"
  172. clearable
  173. class="!w-240px"
  174. >
  175. <el-option label="请选择字典生成" value="" />
  176. </el-select>
  177. </el-form-item>
  178. <el-form-item label="人员情况" prop="personnel">
  179. <el-input
  180. v-model="queryParams.personnel"
  181. placeholder="请输入人员情况"
  182. clearable
  183. @keyup.enter="handleQuery"
  184. class="!w-240px"
  185. />
  186. </el-form-item>
  187. <el-form-item label="累计注气量(万方)" prop="totalGasInjection">
  188. <el-input
  189. v-model="queryParams.totalGasInjection"
  190. placeholder="请输入累计注气量(万方)"
  191. clearable
  192. @keyup.enter="handleQuery"
  193. class="!w-240px"
  194. />
  195. </el-form-item>
  196. <el-form-item label="累计注水量(方)" prop="totalWaterInjection">
  197. <el-input
  198. v-model="queryParams.totalWaterInjection"
  199. placeholder="请输入累计注水量(方)"
  200. clearable
  201. @keyup.enter="handleQuery"
  202. class="!w-240px"
  203. />
  204. </el-form-item>
  205. <el-form-item label="累计完工井次" prop="cumulativeCompletion">
  206. <el-input
  207. v-model="queryParams.cumulativeCompletion"
  208. placeholder="请输入累计完工井次"
  209. clearable
  210. @keyup.enter="handleQuery"
  211. class="!w-240px"
  212. />
  213. </el-form-item>
  214. <el-form-item label="不同专业公司的扩展属性值" prop="extProperty">
  215. <el-input
  216. v-model="queryParams.extProperty"
  217. placeholder="请输入不同专业公司的扩展属性值"
  218. clearable
  219. @keyup.enter="handleQuery"
  220. class="!w-240px"
  221. />
  222. </el-form-item>
  223. <el-form-item label="排序值" prop="sort">
  224. <el-input
  225. v-model="queryParams.sort"
  226. placeholder="请输入排序值"
  227. clearable
  228. @keyup.enter="handleQuery"
  229. class="!w-240px"
  230. />
  231. </el-form-item>
  232. <el-form-item label="备注" prop="remark">
  233. <el-input
  234. v-model="queryParams.remark"
  235. placeholder="请输入备注"
  236. clearable
  237. @keyup.enter="handleQuery"
  238. class="!w-240px"
  239. />
  240. </el-form-item>
  241. <el-form-item label="状态(0启用 1禁用)" prop="status">
  242. <el-select
  243. v-model="queryParams.status"
  244. placeholder="请选择状态(0启用 1禁用)"
  245. clearable
  246. class="!w-240px"
  247. >
  248. <el-option label="请选择字典生成" value="" />
  249. </el-select>
  250. </el-form-item>
  251. <el-form-item label="流程实例id" prop="processInstanceId">
  252. <el-input
  253. v-model="queryParams.processInstanceId"
  254. placeholder="请输入流程实例id"
  255. clearable
  256. @keyup.enter="handleQuery"
  257. class="!w-240px"
  258. />
  259. </el-form-item>
  260. <el-form-item label="审批状态 未提交、审批中、审批通过、审批不通过、已取消" prop="auditStatus">
  261. <el-select
  262. v-model="queryParams.auditStatus"
  263. placeholder="请选择审批状态 未提交、审批中、审批通过、审批不通过、已取消"
  264. clearable
  265. class="!w-240px"
  266. >
  267. <el-option label="请选择字典生成" value="" />
  268. </el-select>
  269. </el-form-item>
  270. <el-form-item label="创建时间" prop="createTime">
  271. <el-date-picker
  272. v-model="queryParams.createTime"
  273. value-format="YYYY-MM-DD HH:mm:ss"
  274. type="daterange"
  275. start-placeholder="开始日期"
  276. end-placeholder="结束日期"
  277. :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
  278. class="!w-220px"
  279. />
  280. </el-form-item>
  281. <el-form-item>
  282. <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
  283. <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
  284. <el-button
  285. type="primary"
  286. plain
  287. @click="openForm('create')"
  288. v-hasPermi="['pms:iot-rh-daily-report:create']"
  289. >
  290. <Icon icon="ep:plus" class="mr-5px" /> 新增
  291. </el-button>
  292. <el-button
  293. type="success"
  294. plain
  295. @click="handleExport"
  296. :loading="exportLoading"
  297. v-hasPermi="['pms:iot-rh-daily-report:export']"
  298. >
  299. <Icon icon="ep:download" class="mr-5px" /> 导出
  300. </el-button>
  301. </el-form-item>
  302. </el-form>
  303. </ContentWrap>
  304. <!-- 列表 -->
  305. <ContentWrap>
  306. <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
  307. <el-table-column label="主键id" align="center" prop="id" />
  308. <el-table-column label="施工队伍id" align="center" prop="deptId" />
  309. <el-table-column label="项目id" align="center" prop="projectId" />
  310. <el-table-column label="任务id" align="center" prop="taskId" />
  311. <el-table-column label="项目类别(钻井 修井 注氮 酸化压裂... )" align="center" prop="projectClassification" />
  312. <el-table-column label="搬迁安装天数" align="center" prop="relocationDays" />
  313. <el-table-column label="运行时效" align="center" prop="transitTime" />
  314. <el-table-column label="当日注气量(万方)" align="center" prop="dailyGasInjection" />
  315. <el-table-column label="当日注水量(方)" align="center" prop="dailyWaterInjection" />
  316. <el-table-column label="当日注气时间(H)" align="center" prop="dailyInjectGasTime" />
  317. <el-table-column label="当日注水时间(H)" align="center" prop="dailyInjectWaterTime" />
  318. <el-table-column label="非生产时间(H)" align="center" prop="nonProductionTime" />
  319. <el-table-column label="非生产时间原因" align="center" prop="nptReason" />
  320. <el-table-column
  321. label="施工开始日期"
  322. align="center"
  323. prop="constructionStartDate"
  324. :formatter="dateFormatter"
  325. width="180px"
  326. />
  327. <el-table-column
  328. label="施工结束日期"
  329. align="center"
  330. prop="constructionEndDate"
  331. :formatter="dateFormatter"
  332. width="180px"
  333. />
  334. <el-table-column label="当日生产情况生产动态" align="center" prop="productionStatus" />
  335. <el-table-column label="下步工作计划" align="center" prop="nextPlan" />
  336. <el-table-column label="施工状态(动迁 准备 施工 完工)" align="center" prop="constructionStatus" />
  337. <el-table-column label="人员情况" align="center" prop="personnel" />
  338. <el-table-column label="累计注气量(万方)" align="center" prop="totalGasInjection" />
  339. <el-table-column label="累计注水量(方)" align="center" prop="totalWaterInjection" />
  340. <el-table-column label="累计完工井次" align="center" prop="cumulativeCompletion" />
  341. <el-table-column label="不同专业公司的扩展属性值" align="center" prop="extProperty" />
  342. <el-table-column label="排序值" align="center" prop="sort" />
  343. <el-table-column label="备注" align="center" prop="remark" />
  344. <el-table-column label="状态(0启用 1禁用)" align="center" prop="status" />
  345. <el-table-column label="流程实例id" align="center" prop="processInstanceId" />
  346. <el-table-column label="审批状态 未提交、审批中、审批通过、审批不通过、已取消" align="center" prop="auditStatus" />
  347. <el-table-column
  348. label="创建时间"
  349. align="center"
  350. prop="createTime"
  351. :formatter="dateFormatter"
  352. width="180px"
  353. />
  354. <el-table-column label="操作" align="center" min-width="120px">
  355. <template #default="scope">
  356. <el-button
  357. link
  358. type="primary"
  359. @click="openForm('update', scope.row.id)"
  360. v-hasPermi="['pms:iot-rh-daily-report:update']"
  361. >
  362. 编辑
  363. </el-button>
  364. <el-button
  365. link
  366. type="danger"
  367. @click="handleDelete(scope.row.id)"
  368. v-hasPermi="['pms:iot-rh-daily-report:delete']"
  369. >
  370. 删除
  371. </el-button>
  372. </template>
  373. </el-table-column>
  374. </el-table>
  375. <!-- 分页 -->
  376. <Pagination
  377. :total="total"
  378. v-model:page="queryParams.pageNo"
  379. v-model:limit="queryParams.pageSize"
  380. @pagination="getList"
  381. />
  382. </ContentWrap>
  383. <!-- 表单弹窗:添加/修改 -->
  384. <IotRhDailyReportForm ref="formRef" @success="getList" />
  385. </template>
  386. <script setup lang="ts">
  387. import { dateFormatter } from '@/utils/formatTime'
  388. import download from '@/utils/download'
  389. import { IotRhDailyReportApi, IotRhDailyReportVO } from '@/api/pms/iotrhdailyreport'
  390. import IotRhDailyReportForm from './IotRhDailyReportForm.vue'
  391. /** 瑞恒日报 列表 */
  392. defineOptions({ name: 'IotRhDailyReport' })
  393. const message = useMessage() // 消息弹窗
  394. const { t } = useI18n() // 国际化
  395. const loading = ref(true) // 列表的加载中
  396. const list = ref<IotRhDailyReportVO[]>([]) // 列表的数据
  397. const total = ref(0) // 列表的总页数
  398. const queryParams = reactive({
  399. pageNo: 1,
  400. pageSize: 10,
  401. deptId: undefined,
  402. projectId: undefined,
  403. taskId: undefined,
  404. projectClassification: undefined,
  405. relocationDays: undefined,
  406. transitTime: [],
  407. dailyGasInjection: undefined,
  408. dailyWaterInjection: undefined,
  409. dailyInjectGasTime: [],
  410. dailyInjectWaterTime: [],
  411. nonProductionTime: [],
  412. nptReason: undefined,
  413. constructionStartDate: [],
  414. constructionEndDate: [],
  415. productionStatus: undefined,
  416. nextPlan: undefined,
  417. constructionStatus: undefined,
  418. personnel: undefined,
  419. totalGasInjection: undefined,
  420. totalWaterInjection: undefined,
  421. cumulativeCompletion: undefined,
  422. extProperty: undefined,
  423. sort: undefined,
  424. remark: undefined,
  425. status: undefined,
  426. processInstanceId: undefined,
  427. auditStatus: undefined,
  428. createTime: [],
  429. })
  430. const queryFormRef = ref() // 搜索的表单
  431. const exportLoading = ref(false) // 导出的加载中
  432. /** 查询列表 */
  433. const getList = async () => {
  434. loading.value = true
  435. try {
  436. const data = await IotRhDailyReportApi.getIotRhDailyReportPage(queryParams)
  437. list.value = data.list
  438. total.value = data.total
  439. } finally {
  440. loading.value = false
  441. }
  442. }
  443. /** 搜索按钮操作 */
  444. const handleQuery = () => {
  445. queryParams.pageNo = 1
  446. getList()
  447. }
  448. /** 重置按钮操作 */
  449. const resetQuery = () => {
  450. queryFormRef.value.resetFields()
  451. handleQuery()
  452. }
  453. /** 添加/修改操作 */
  454. const formRef = ref()
  455. const openForm = (type: string, id?: number) => {
  456. formRef.value.open(type, id)
  457. }
  458. /** 删除按钮操作 */
  459. const handleDelete = async (id: number) => {
  460. try {
  461. // 删除的二次确认
  462. await message.delConfirm()
  463. // 发起删除
  464. await IotRhDailyReportApi.deleteIotRhDailyReport(id)
  465. message.success(t('common.delSuccess'))
  466. // 刷新列表
  467. await getList()
  468. } catch {}
  469. }
  470. /** 导出按钮操作 */
  471. const handleExport = async () => {
  472. try {
  473. // 导出的二次确认
  474. await message.exportConfirm()
  475. // 发起导出
  476. exportLoading.value = true
  477. const data = await IotRhDailyReportApi.exportIotRhDailyReport(queryParams)
  478. download.excel(data, '瑞恒日报.xls')
  479. } catch {
  480. } finally {
  481. exportLoading.value = false
  482. }
  483. }
  484. /** 初始化 **/
  485. onMounted(() => {
  486. getList()
  487. })
  488. </script>