index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789
  1. <template>
  2. <div class="app-container">
  3. <el-form
  4. :model="queryParams"
  5. ref="queryForm"
  6. :inline="true"
  7. v-show="showSearch"
  8. label-width="68px"
  9. >
  10. <el-form-item label="台账编号" prop="params.ext1.tz_id">
  11. <el-input
  12. v-model="queryParams.params.ext1.tz_id"
  13. placeholder="请输入"
  14. clearable
  15. @keyup.enter.native="handleQuery"
  16. />
  17. </el-form-item>
  18. <el-form-item label="设施名称" prop="params.ext1.tz_ss_name">
  19. <el-input
  20. v-model="queryParams.params.ext1.tz_ss_name"
  21. placeholder="请输入"
  22. clearable
  23. @keyup.enter.native="handleQuery"
  24. />
  25. </el-form-item>
  26. <el-form-item label="关键字" prop="params.keyword">
  27. <el-input
  28. v-model="queryParams.params.keyword"
  29. placeholder="所属流域/管径范围"
  30. clearable
  31. @keyup.enter.native="handleQuery"
  32. />
  33. </el-form-item>
  34. <el-form-item label="城区" prop="params.ext1.tz_area_new">
  35. <el-select
  36. v-model="queryParams.params.ext1.tz_area_new"
  37. class="m-2"
  38. placeholder="请选择"
  39. clearable
  40. @keyup.enter.native="handleQuery"
  41. >
  42. <el-option
  43. v-for="item in sys_area"
  44. :label="item.label"
  45. :value="item.value"
  46. ></el-option>
  47. </el-select>
  48. </el-form-item>
  49. <el-form-item label="管辖班组" prop="params.ext1.tz_ss_unit">
  50. <el-select v-model="queryParams.params.ext1.tz_ss_unit" class="m-2" placeholder="请选择" clearable
  51. @keyup.enter.native="handleQuery">
  52. <el-option v-for="dept in alldept.filter(i => i.deptName.indexOf('生产') != -1 || i.deptName.indexOf('运营') != -1)" :label="dept.deptName" :value="dept.deptId"></el-option>
  53. </el-select>
  54. <!-- <el-tree-select
  55. v-model="queryParams.params.ext1.tz_ss_unit"
  56. :data="alldept.filter(i => i.deptName.indexOf('生产') != -1 || i.deptName.indexOf('运营') != -1 )"
  57. check-strictly="true"
  58. @keyup.enter.native="handleQuery"
  59. /> -->
  60. </el-form-item>
  61. <el-form-item label="排水体制" prop="params.ext1.tz_ss_pstz">
  62. <el-select
  63. v-model="queryParams.params.ext1.tz_ss_pstz"
  64. class="m-2"
  65. placeholder="请选择"
  66. clearable
  67. @keyup.enter.native="handleQuery"
  68. >
  69. <el-option
  70. v-for="item in facilities_pstz"
  71. :label="item.label"
  72. :value="item.value"
  73. ></el-option>
  74. </el-select>
  75. </el-form-item>
  76. <!-- <el-form-item>
  77. <el-button type="primary" icon="search" size="mini" @click="handleQuery"
  78. >搜索</el-button
  79. >
  80. <el-button icon="refresh" type="primary" size="mini" @click="resetQuery">重置</el-button>
  81. </el-form-item> -->
  82. </el-form>
  83. <el-row :gutter="10" class="mb8">
  84. <el-col :span="1.5">
  85. <el-button type="primary" icon="search" size="mini" @click="handleQuery"
  86. >搜索</el-button
  87. >
  88. </el-col>
  89. <el-col :span="1.5">
  90. <el-button icon="refresh" type="primary" size="mini" @click="resetQuery">重置</el-button>
  91. </el-col>
  92. <el-col :span="1.5">
  93. <el-button
  94. type="primary"
  95. @click.stop="exportexcel3()"
  96. >导出
  97. </el-button>
  98. </el-col>
  99. <el-col :span="1.5">
  100. <el-button
  101. type="success"
  102. @click.stop="inportexcel3()"
  103. >导入
  104. </el-button>
  105. </el-col>
  106. <el-col :span="1.5">
  107. <el-button type="danger" icon="Delete" size="mini" :disabled="multiple" @click.stop="handleDelete"
  108. v-hasPermi="['system:facilities:remove']">删除</el-button>
  109. </el-col>
  110. <el-col :span="1.5">
  111. <el-button
  112. type="success"
  113. icon="Plus"
  114. size="mini"
  115. @click="handleAdd"
  116. v-hasPermi="['system:facilities:add']"
  117. >新增</el-button
  118. >
  119. </el-col>
  120. <el-col :span="1.5">
  121. <el-button v-if="false"
  122. type="success"
  123. icon="Edit"
  124. size="mini"
  125. :disabled="single"
  126. @click.stop="handleUpdate"
  127. v-hasPermi="['system:facilities:edit']"
  128. >修改</el-button
  129. >
  130. </el-col>
  131. <el-col :span="1.5">
  132. <el-button v-if="false"
  133. type="warning"
  134. icon="Download"
  135. size="mini"
  136. @click="handleExport"
  137. v-hasPermi="['system:facilities:export']"
  138. >导出</el-button
  139. >
  140. </el-col>
  141. <right-toolbar v-if="false" :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  142. </el-row>
  143. <el-table
  144. v-loading="loading"
  145. :data="facilitiesList"
  146. @row-click="itemclick"
  147. @selection-change="handleSelectionChange"
  148. >
  149. <el-table-column type="selection" width="55" align="center" />
  150. <!-- <el-table-column label="序号" align="center" prop="id" /> -->
  151. <el-table-column label="台账编号" align="center" prop="ext1.tz_id" />
  152. <el-table-column label="设施名称" align="center" prop="ext1.tz_ss_name" />
  153. <el-table-column label="行政区" align="center" prop="ext1.tz_area_new">
  154. <template #default="scope">
  155. {{
  156. (sys_area ?? []).filter((i) => i.value === scope.row.ext1.tz_area_new + "")[0]
  157. ?.label ?? "-"
  158. }}
  159. </template>
  160. </el-table-column>
  161. <el-table-column label="排水体制" align="center" prop="ext1.tz_ss_pstz">
  162. <template #default="scope">
  163. {{
  164. (facilities_pstz ?? []).filter((i) => i.value === scope.row.ext1.tz_ss_pstz + "")[0]
  165. ?.label ?? "-"
  166. }}
  167. </template>
  168. </el-table-column>
  169. <el-table-column
  170. label="运维长度(米)"
  171. align="center"
  172. prop="ext1.tz_ss_data_length"
  173. />
  174. <el-table-column label="设施起止点" align="center" prop="ext1.tz_ss_road_se" />
  175. <el-table-column label="管径范围(mm)" align="center" prop="ext1.tz_ss_dn" />
  176. <el-table-column label="辖区班组" align="center" prop="ext1.tz_ss_unit">
  177. <template #default="scope">
  178. {{
  179. (scope.row.ext1.tz_ss_unit == "" ? [] : scope.row.ext1.tz_ss_unit ?? [])
  180. .map((i) => {
  181. return (
  182. alldept.find((p) => {
  183. return p.deptId + "" === i + "";
  184. })?.deptName ?? "-"
  185. );
  186. })
  187. .join("、")
  188. }}
  189. </template>
  190. </el-table-column>
  191. <el-table-column label="检查井(座)" align="center" prop="ext1.tz_ss_data_jing" />
  192. <el-table-column label="雨水口(座)" align="center" prop="ext1.tz_ss_data_ysk" />
  193. <el-table-column label="排河口(座)" align="center" prop="ext1.tz_pfk" />
  194. <el-table-column label="流域名称" align="center" prop="ext1.tz_ss_dn" />
  195. <el-table-column label="备注" align="center" prop="ext1.tz_ss_more" />
  196. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  197. <template #default="scope">
  198. <el-button
  199. size="mini"
  200. type="primary"
  201. @click.stop="handleUpdate(scope.row)"
  202. v-hasPermi="['system:facilities:edit']"
  203. >修改</el-button
  204. >
  205. <el-button
  206. size="mini"
  207. type="danger"
  208. @click.stop="handleDelete(scope.row)"
  209. v-hasPermi="['system:facilities:remove']"
  210. >删除</el-button
  211. >
  212. </template>
  213. </el-table-column>
  214. </el-table>
  215. <pagination
  216. :total="total"
  217. v-model:page="queryParams.params.pageNum"
  218. v-model:limit="queryParams.params.pageSize"
  219. @pagination="getList"
  220. />
  221. <!-- 添加或修改设施对话框 -->
  222. <el-dialog :title="title" v-model="open" width="80vw" append-to-body>
  223. <el-form ref="form" :model="fform" :rules="rules" label-width="120px">
  224. <el-row>
  225. <el-col :span="12">
  226. <el-form-item :label="`台账编号:`" required prop="ext1.tz_id"
  227. ><el-input
  228. v-model="fform.ext1.tz_id"
  229. :placeholder="`请输入编号`"
  230. ></el-input>
  231. </el-form-item>
  232. </el-col>
  233. <el-col :span="12">
  234. <el-form-item :label="`行政区:`" prop="ext1.tz_area_new">
  235. <el-select
  236. v-model="fform.ext1.tz_area_new"
  237. class="m-1"
  238. placeholder="请选择"
  239. >
  240. <el-option
  241. v-for="item in sys_area"
  242. :label="item.label"
  243. :value="item.value"
  244. ></el-option>
  245. </el-select>
  246. </el-form-item>
  247. </el-col>
  248. <el-col :span="12">
  249. <el-form-item :label="`设施名称:`" required prop="ext1.tz_ss_name"
  250. ><el-input v-model="fform.ext1.tz_ss_name" :placeholder="`请输入`">
  251. </el-input
  252. ></el-form-item>
  253. </el-col>
  254. <el-col :span="12">
  255. <el-form-item :label="`移交来源:`" prop="ext1.tz_ss_info"
  256. ><el-input v-model="fform.ext1.tz_ss_info" :placeholder="`请输入`">
  257. </el-input
  258. ></el-form-item>
  259. </el-col>
  260. <el-col :span="12">
  261. <el-form-item :label="`设施起止点:`" required prop="ext1.tz_ss_road_se"
  262. ><el-input v-model="fform.ext1.tz_ss_road_se" :placeholder="`请输入`">
  263. </el-input
  264. ></el-form-item>
  265. </el-col>
  266. <el-col :span="12">
  267. <el-form-item :label="`移交时间:`" prop="ext1.tz_ss_time">
  268. <el-date-picker
  269. v-model="fform.ext1.tz_ss_time"
  270. value-format="YYYY-MM-DD"
  271. type="date"
  272. placeholder="请选择"
  273. />
  274. </el-form-item>
  275. </el-col>
  276. <el-col :span="12">
  277. <el-form-item :label="`运维长度:`" required prop="ext1.tz_ss_data_length"
  278. ><el-input v-model="fform.ext1.tz_ss_data_length" type="number" :placeholder="`请输入`">
  279. <template #append>(米)</template>
  280. </el-input></el-form-item
  281. >
  282. </el-col>
  283. <el-col :span="12">
  284. <el-form-item :label="`移交单位:`" prop="ext1.tz_ss_from"
  285. ><el-input v-model="fform.ext1.tz_ss_from" :placeholder="`请输入`">
  286. </el-input
  287. ></el-form-item>
  288. </el-col>
  289. <el-col :span="12">
  290. <el-form-item :label="`管径范围:`" prop="ext1.tz_ss_dn"
  291. ><el-input v-model="fform.ext1.tz_ss_dn" @change="() => { fform.ext1.tz_ss_dn = check(fform.ext1.tz_ss_dn)}" :placeholder="`请输入`">
  292. <template #append>(mm)</template>
  293. </el-input></el-form-item
  294. >
  295. </el-col>
  296. <el-col :span="12">
  297. <el-form-item :label="`接收时间:`" prop="ext1.tz_jssj">
  298. <el-date-picker
  299. v-model="fform.ext1.tz_jssj"
  300. value-format="YYYY-MM-DD"
  301. type="date"
  302. placeholder="请选择"
  303. />
  304. </el-form-item>
  305. </el-col>
  306. <el-col :span="12">
  307. <el-form-item :label="`所属流域:`" prop="ext1.tz_ssly"
  308. ><el-input v-model="fform.ext1.tz_ssly" :placeholder="`请输入`">
  309. </el-input
  310. ></el-form-item>
  311. </el-col>
  312. <el-col :span="12">
  313. <el-form-item :label="`辖区班组:`" prop="ext1.tz_ss_unit">
  314. <el-tree-select
  315. v-model="fform.ext1.tz_ss_unit"
  316. multiple
  317. :data="treedept"
  318. check-strictly="true"
  319. /></el-form-item>
  320. </el-col>
  321. <el-col :span="6">
  322. <el-form-item :label="`排水体制:`" prop="ext1.tz_ss_pstz">
  323. <el-select v-model="fform.ext1.tz_ss_pstz" class="m-1" placeholder="请选择">
  324. <el-option
  325. v-for="item in facilities_pstz"
  326. :label="item.label"
  327. :value="item.value"
  328. ></el-option>
  329. </el-select>
  330. </el-form-item>
  331. </el-col>
  332. <el-col :span="6">
  333. <el-form-item :label="`检查井:`" prop="ext1.tz_ss_data_jing"
  334. ><el-input v-model="fform.ext1.tz_ss_data_jing" type="number" :placeholder="`请输入`">
  335. <template #append>(座)</template>
  336. </el-input></el-form-item
  337. >
  338. </el-col>
  339. <el-col :span="6">
  340. <el-form-item :label="`雨口井:`" prop="ext1.tz_ss_data_ysk"
  341. ><el-input v-model="fform.ext1.tz_ss_data_ysk" type="number" :placeholder="`请输入`">
  342. <template #append>(座)</template>
  343. </el-input></el-form-item
  344. >
  345. </el-col>
  346. <el-col :span="6">
  347. <el-form-item :label="`排河口:`" prop="ext1.tz_pfk"
  348. ><el-input v-model="fform.ext1.tz_pfk" type="number" :placeholder="`请输入`">
  349. <template #append>(座)</template>
  350. </el-input></el-form-item
  351. >
  352. </el-col>
  353. <el-col :span="4" style="text-align: right">
  354. <span style="font-weight: bold; line-height: 30px; padding-right: 20px">
  355. 雨水口检测详情</span
  356. >
  357. </el-col>
  358. <el-col :span="4">
  359. <el-form-item :label="`单箅:`" prop="ext1.tz_bz_dan" label-width="60px"
  360. ><el-input v-model="fform.ext1.tz_bz_dan" type="number" :placeholder="`请输入`">
  361. <template #append>(个)</template>
  362. </el-input></el-form-item
  363. >
  364. </el-col>
  365. <el-col :span="4">
  366. <el-form-item :label="`双箅:`" prop="ext1.tz_bz_shuang" label-width="60px"
  367. ><el-input v-model="fform.ext1.tz_bz_shuang" type="number" :placeholder="`请输入`">
  368. <template #append>(个)</template>
  369. </el-input></el-form-item
  370. >
  371. </el-col>
  372. <el-col :span="4">
  373. <el-form-item :label="`三箅:`" prop="ext1.tz_bz_san" label-width="60px"
  374. ><el-input v-model="fform.ext1.tz_bz_san" type="number" :placeholder="`请输入`">
  375. <template #append>(个)</template>
  376. </el-input></el-form-item
  377. >
  378. </el-col>
  379. <el-col :span="4">
  380. <el-form-item :label="`四箅:`" prop="ext1.tz_bz_si" label-width="60px"
  381. ><el-input v-model="fform.ext1.tz_bz_si" type="number" :placeholder="`请输入`">
  382. <template #append>(个)</template>
  383. </el-input></el-form-item
  384. >
  385. </el-col>
  386. <el-col :span="4">
  387. <el-form-item :label="`多箅:`" prop="ext1.tz_bz_duo" label-width="60px"
  388. ><el-input v-model="fform.ext1.tz_bz_duo" type="number" :placeholder="`请输入`">
  389. <template #append>(个)</template>
  390. </el-input></el-form-item
  391. >
  392. </el-col>
  393. <!-- <el-col :span="12" v-for="itemkey in Object.keys(facilities_obj)">
  394. <el-form-item
  395. :label="`${getfacilitiesdesname(itemkey).des}:`"
  396. prop="areaDes"
  397. >
  398. <el-input
  399. v-if="getfacilitiesdesname(itemkey).type == 'text'"
  400. v-model="fform.ext1[itemkey + '']"
  401. :placeholder="`请输入${getfacilitiesdesname(itemkey).des}`"
  402. />
  403. <el-input
  404. type="textarea"
  405. v-if="getfacilitiesdesname(itemkey).type == 'textarea'"
  406. v-model="fform.ext1[itemkey + '']"
  407. :placeholder="`请输入${getfacilitiesdesname(itemkey).des}`"
  408. />
  409. </el-form-item>
  410. </el-col> -->
  411. </el-row>
  412. </el-form>
  413. <div slot="footer" class="dialog-footer" style="text-align: right">
  414. <el-button type="primary" @click="submitForm">确 定</el-button>
  415. <el-button @click="cancel">取 消</el-button>
  416. </div>
  417. </el-dialog>
  418. </div>
  419. </template>
  420. <script setup>
  421. import {
  422. listFacilities,
  423. listFacilities1,
  424. getFacilities,
  425. delFacilities,
  426. addFacilities,
  427. updateFacilities,
  428. } from "@/api/system/facilities";
  429. import ImageUpload from "@/components/ImageUpload";
  430. import { useDict } from "@/utils/dict";
  431. import { Search } from "@element-plus/icons-vue";
  432. import { cloneDeep } from "lodash";
  433. import { listDept, getDept } from "@/api/system/dept";
  434. import { treeselect as deptTreeselect } from "@/api/system/dept";
  435. import { getfacilitiesdesname } from "@/utils/ruoyi";
  436. import { defineComponent, ref, onMounted, watch } from "vue";
  437. import router from "../../../router";
  438. const {
  439. task_status,
  440. task_type,
  441. task_event_type,
  442. task_event_category,
  443. sys_area,
  444. facilities_pstz,
  445. } = useDict(
  446. "task_status",
  447. "task_type",
  448. "task_event_type",
  449. "task_event_category",
  450. "sys_area",
  451. "facilities_pstz"
  452. );
  453. const { proxy } = getCurrentInstance();
  454. // 遮罩层
  455. const loading = ref(true);
  456. // 选中数组
  457. const ids = ref([]);
  458. // 非单个禁用
  459. const single = ref(true);
  460. // 非多个禁用
  461. const multiple = ref(true);
  462. // 显示搜索条件
  463. const showSearch = ref(true);
  464. // 总条数
  465. const total = ref(0);
  466. // 设施表格数据
  467. const facilitiesList = ref([]);
  468. // 弹出层标题
  469. const title = ref("");
  470. // 是否显示弹出层
  471. const open = ref(false);
  472. // 查询参数
  473. const facilities_obj = ref({
  474. tz_id: "",
  475. tz_dhx: "",
  476. tz_dlj: "",
  477. tz_jlj: "",
  478. tz_jsk: "",
  479. tz_pfk: "",
  480. tz_gjsj: "",
  481. tz_gwly: "",
  482. tz_jgsj: "",
  483. tz_road: "",
  484. tz_yssj: "",
  485. tz_bz_si: "",
  486. tz_ss_cz: "",
  487. tz_ss_dn: "",
  488. tz_xlymc: "",
  489. tz_bz_dan: "",
  490. tz_bz_duo: "",
  491. tz_bz_san: "",
  492. tz_ss_from: "",
  493. tz_ss_info: "",
  494. tz_ss_more: "",
  495. tz_ss_name: "",
  496. tz_ss_pstz: "",
  497. tz_ss_road: "",
  498. tz_ss_time: "",
  499. tz_jssj: "",
  500. tz_ssly: "",
  501. tz_pkbh: "",
  502. pics:"",
  503. tz_ss_type: "",
  504. tz_ss_unit: "",
  505. tz_zm_type: "",
  506. tz_area_new: "",
  507. tz_area_old: "",
  508. tz_bz_total: "",
  509. tz_ss_river: "",
  510. tz_bz_shuang: "",
  511. tz_xfgj_dxgj: "",
  512. tz_xfgj_xxgq: "",
  513. tz_xfgj_zxgj: "",
  514. tz_ss_road_se: "",
  515. tz_xfgj_tdxgj: "",
  516. tz_ss_data_ysk: "",
  517. tz_ss_road_end: "",
  518. tz_zm_material: "",
  519. tz_ss_data_jing: "",
  520. tz_ss_road_start: "",
  521. tz_ss_data_length: "",
  522. tz_ss_data_main_length: "",
  523. tz_ss_data_minor_length: "",
  524. });
  525. const alldept = ref([]);
  526. listDept().then((response) => {
  527. alldept.value = cloneDeep(response.data);
  528. });
  529. function setdatakey(dept) {
  530. if (dept.children) {
  531. dept.children = dept.children.map((i) => {
  532. return setdatakey(i);
  533. });
  534. }
  535. dept["value"] = dept.id;
  536. return dept;
  537. }
  538. const treedept = ref([
  539. {
  540. value: "1",
  541. label: "ss",
  542. },
  543. {
  544. value: "2",
  545. label: "ss1",
  546. },
  547. ]);
  548. deptTreeselect().then((res) => {
  549. treedept.value = [setdatakey(res.data[0])];
  550. });
  551. const validatedhx = (rule, value, callback) => {
  552. if (value === "") {
  553. callback(new Error("请输入编号"));
  554. return;
  555. }
  556. var p = {
  557. params: {
  558. ext1: {
  559. tz_id: value,
  560. },
  561. },
  562. };
  563. listFacilities1(p).then((response) => {
  564. if (response.total > 0 && response.rows[0].id != fform.value.id) {
  565. callback(new Error("编号已存在"));
  566. }
  567. callback();
  568. });
  569. };
  570. const data = reactive({
  571. fform: { ext1: cloneDeep(facilities_obj.value) },
  572. queryParams: {
  573. params: {
  574. pageNum: 1,
  575. pageSize: 10,
  576. keyword: "",
  577. ext1: {
  578. tz_id: "",
  579. tz_ss_name: "",
  580. tz_area_new: "",
  581. tz_ss_unit: "",
  582. tz_ss_pstz: "",
  583. },
  584. },
  585. },
  586. rules: {
  587. "ext1.tz_id": [{ validator: validatedhx, trigger: "blur" }],
  588. "ext1.tz_ss_name": [{ required: true, message: "请输入名称", trigger: "blur" }],
  589. "ext1.tz_ss_road_se": [{ required: true, message: "请输入起止点", trigger: "blur" }],
  590. "ext1.tz_ss_data_length": [
  591. { required: true, message: "请输入长度", trigger: "blur" },
  592. ],
  593. },
  594. });
  595. const { queryParams, fform, rules } = toRefs(data);
  596. onMounted(() => {
  597. getList();
  598. });
  599. const getList = () => {
  600. // debugger
  601. loading.value = true;
  602. listFacilities1(queryParams.value).then((response) => {
  603. facilitiesList.value = response.rows.map((i) => {
  604. i.ext1 = JSON.parse(i.ext1);
  605. return i;
  606. });
  607. total.value = response.total;
  608. loading.value = false;
  609. });
  610. };
  611. const exportexcel3 = () => {
  612. // loading.value = true;
  613. var q = cloneDeep(queryParams.value);
  614. var c = JSON.stringify(cloneDeep(q.params));
  615. delete q.params;
  616. // console.log(q.params)
  617. q["params"] = {"q":c};
  618. proxy.download(
  619. "system/facilities/export3",
  620. {
  621. ...q,
  622. },
  623. `南宁北排管网公司设施台账.xlsx`
  624. );
  625. }
  626. const inportexcel3 = () => {
  627. }
  628. // 取消按钮
  629. const cancel = () => {
  630. open.value = false;
  631. reset();
  632. };
  633. // 表单重置
  634. const reset = () => {
  635. fform.value = {
  636. id: null,
  637. areaDes: null,
  638. areaAdDes: null,
  639. exId: null,
  640. name: null,
  641. roadName: null,
  642. nature: null,
  643. addrFrom: null,
  644. addrEnd: null,
  645. exId1: null,
  646. ext1: cloneDeep(facilities_obj.value),
  647. };
  648. proxy.resetForm("form");
  649. };
  650. /** 搜索按钮操作 */
  651. const handleQuery = () => {
  652. queryParams.value.pageNum = 1;
  653. getList();
  654. };
  655. /** 重置按钮操作 */
  656. const resetQuery = () => {
  657. proxy.resetForm("queryForm");
  658. handleQuery();
  659. };
  660. // 多选框选中数据
  661. const handleSelectionChange = (selection) => {
  662. ids.value = selection.map((item) => item.id);
  663. single.value = selection.length !== 1;
  664. multiple.value = !selection.length;
  665. };
  666. /** 新增按钮操作 */
  667. const handleAdd = () => {
  668. reset();
  669. open.value = true;
  670. title.value = "添加设施";
  671. };
  672. /** 修改按钮操作 */
  673. const handleUpdate = (row) => {
  674. reset();
  675. const id = row.id || ids.value;
  676. getFacilities(id).then((response) => {
  677. fform.value = response.data;
  678. fform.value.ext1 = JSON.parse(fform.value.ext1);
  679. open.value = true;
  680. title.value = "修改设施";
  681. });
  682. };
  683. /** 提交按钮 */
  684. const submitForm = () => {
  685. proxy.$refs["form"]
  686. .validate((valid) => {
  687. console.log(valid);
  688. if (valid) {
  689. if (fform.value.id != null) {
  690. var ddf = cloneDeep(fform.value);
  691. ddf.ext1 = JSON.stringify(ddf.ext1);
  692. updateFacilities(ddf).then((response) => {
  693. proxy.$modal.msgSuccess("修改成功");
  694. open.value = false;
  695. getList();
  696. });
  697. } else {
  698. var ddf = cloneDeep(fform.value);
  699. ddf.ext1 = JSON.stringify(ddf.ext1);
  700. addFacilities(ddf).then((response) => {
  701. proxy.$modal.msgSuccess("新增成功");
  702. open.value = false;
  703. getList();
  704. });
  705. }
  706. }
  707. });
  708. };
  709. /** 删除按钮操作 */
  710. const handleDelete = (row) => {
  711. debugger
  712. const ids1 = row.id || ids.value;
  713. proxy.$modal
  714. .confirm('是否确认删除设施编号为"' + ids1 + '"的数据项?')
  715. .then(function () {
  716. return delFacilities(ids1);
  717. })
  718. .then(() => {
  719. getList();
  720. proxy.$modal.msgSuccess("删除成功");
  721. })
  722. .catch(() => {});
  723. };
  724. /** 导出按钮操作 */
  725. const handleExport = () => {
  726. proxy.download(
  727. "system/facilities/export",
  728. {
  729. ...queryParams.value,
  730. },
  731. `facilities_${new Date().getTime()}.xlsx`
  732. );
  733. };
  734. const itemclick = (row, index) => {
  735. router.push("/system/facilities/detail/" + row.id);
  736. };
  737. const check = (str) =>{
  738. var temp = ""; for (var i = 0; i < str.length; i++)
  739. if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 255)
  740. temp += str.charAt(i)
  741. return temp
  742. }
  743. </script>