index8.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. <template>
  2. <div class="app-container">
  3. <!-- <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">-->
  4. <!-- <el-form-item label="服务类别" prop="serviceType">-->
  5. <!-- <el-select v-model="queryParams.serviceType" placeholder="请选择服务类别" clearable size="small">-->
  6. <!-- <el-option-->
  7. <!-- v-for="dict in dict.type.service_type"-->
  8. <!-- :key="dict.value"-->
  9. <!-- :label="dict.label"-->
  10. <!-- :value="dict.value"-->
  11. <!-- />-->
  12. <!-- </el-select>-->
  13. <!-- </el-form-item>-->
  14. <!-- &lt;!&ndash; <el-form-item label="职工" prop="userId">&ndash;&gt;-->
  15. <!-- &lt;!&ndash; <el-select v-model="queryParams.userId" filterable placeholder="请选择职工">&ndash;&gt;-->
  16. <!-- &lt;!&ndash; <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{ item.name }}</el-option>&ndash;&gt;-->
  17. <!-- &lt;!&ndash; </el-select>&ndash;&gt;-->
  18. <!-- &lt;!&ndash; </el-form-item>&ndash;&gt;-->
  19. <!-- <el-form-item label="订单状态" prop="orderStatus">-->
  20. <!-- <el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable size="small">-->
  21. <!-- <el-option-->
  22. <!-- v-for="dict in dict.type.order_status"-->
  23. <!-- :key="dict.value"-->
  24. <!-- :label="dict.label"-->
  25. <!-- :value="dict.value"-->
  26. <!-- />-->
  27. <!-- </el-select>-->
  28. <!-- </el-form-item>-->
  29. <!-- &lt;!&ndash; <el-form-item label="审核状态" prop="examineStatus">&ndash;&gt;-->
  30. <!-- &lt;!&ndash; <el-select v-model="queryParams.examineStatus" placeholder="请选择审核状态" clearable size="small">&ndash;&gt;-->
  31. <!-- &lt;!&ndash; <el-option&ndash;&gt;-->
  32. <!-- &lt;!&ndash; v-for="dict in dict.type.examine_status"&ndash;&gt;-->
  33. <!-- &lt;!&ndash; :key="dict.value"&ndash;&gt;-->
  34. <!-- &lt;!&ndash; :label="dict.label"&ndash;&gt;-->
  35. <!-- &lt;!&ndash; :value="dict.value"&ndash;&gt;-->
  36. <!-- &lt;!&ndash; />&ndash;&gt;-->
  37. <!-- &lt;!&ndash; </el-select>&ndash;&gt;-->
  38. <!-- &lt;!&ndash; </el-form-item>&ndash;&gt;-->
  39. <!-- <el-form-item>-->
  40. <!-- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>-->
  41. <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>-->
  42. <!-- </el-form-item>-->
  43. <!-- </el-form>-->
  44. <!-- <el-row :gutter="10" class="mb8">-->
  45. <!-- &lt;!&ndash; <el-col :span="1.5">&ndash;&gt;-->
  46. <!-- &lt;!&ndash; <el-button&ndash;&gt;-->
  47. <!-- &lt;!&ndash; type="success"&ndash;&gt;-->
  48. <!-- &lt;!&ndash; plain&ndash;&gt;-->
  49. <!-- &lt;!&ndash; icon="el-icon-edit"&ndash;&gt;-->
  50. <!-- &lt;!&ndash; size="mini"&ndash;&gt;-->
  51. <!-- &lt;!&ndash; :disabled="single"&ndash;&gt;-->
  52. <!-- &lt;!&ndash; @click="handleUpdate"&ndash;&gt;-->
  53. <!-- &lt;!&ndash; v-hasPermi="['gas:order:edit']"&ndash;&gt;-->
  54. <!-- &lt;!&ndash; >审核&ndash;&gt;-->
  55. <!-- &lt;!&ndash; </el-button>&ndash;&gt;-->
  56. <!-- &lt;!&ndash; </el-col>&ndash;&gt;-->
  57. <!-- <el-col :span="1.5">-->
  58. <!-- <el-button-->
  59. <!-- type="success"-->
  60. <!-- plain-->
  61. <!-- icon="el-icon-edit"-->
  62. <!-- size="mini"-->
  63. <!-- :disabled="multiple"-->
  64. <!-- @click="submitY"-->
  65. <!-- v-hasPermi="['gas:order:edit']"-->
  66. <!-- >合格-->
  67. <!-- </el-button>-->
  68. <!-- </el-col>-->
  69. <!-- <el-col :span="1.5">-->
  70. <!-- <el-button-->
  71. <!-- type="success"-->
  72. <!-- plain-->
  73. <!-- icon="el-icon-edit"-->
  74. <!-- size="mini"-->
  75. <!-- :disabled="multiple"-->
  76. <!-- @click="submitN"-->
  77. <!-- v-hasPermi="['gas:order:edit']"-->
  78. <!-- >不合格-->
  79. <!-- </el-button>-->
  80. <!-- </el-col>-->
  81. <!-- </el-row>-->
  82. <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
  83. <el-table-column type="selection" width="55" align="center"/>
  84. <el-table-column label="服务类别" align="center" prop="serviceType">
  85. <template slot-scope="scope">
  86. <dict-tag :options="dict.type.service_type" :value="scope.row.serviceType"/>
  87. </template>
  88. </el-table-column>
  89. <el-table-column label="职工" align="center" prop="userName"/>
  90. <el-table-column label="房屋" align="center" prop="house"/>
  91. <el-table-column label="管子类型" align="center" prop="pipeType"/>
  92. <el-table-column label="管子长度" align="center" prop="pipeLength"/>
  93. <el-table-column label="时间" align="center" prop="time"/>
  94. <!-- <el-table-column label="订单状态" align="center" prop="orderStatus">-->
  95. <!-- <template slot-scope="scope">-->
  96. <!-- <dict-tag :options="dict.type.order_status" :value="scope.row.orderStatus"/>-->
  97. <!-- </template>-->
  98. <!-- </el-table-column>-->
  99. <el-table-column label="审核状态" align="center" prop="examineStatus">
  100. <template slot-scope="scope">
  101. <dict-tag :options="dict.type.examine_status" :value="scope.row.examineStatus"/>
  102. </template>
  103. </el-table-column>
  104. <el-table-column label="照片" align="center" prop="photoList">
  105. <template slot-scope="scope">
  106. <el-image
  107. v-if="scope.row.photoList.length> 0"
  108. style="width: 100px; height: 100px"
  109. :src="scope.row.photoList[0]"
  110. :preview-src-list="scope.row.photoList">
  111. </el-image>
  112. </template>
  113. </el-table-column>
  114. <el-table-column label="备注" align="center" prop="remark"/>
  115. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  116. <template slot-scope="scope">
  117. <el-button
  118. size="mini"
  119. type="text"
  120. icon="el-icon-search"
  121. @click="handleUpdate(scope.row)"
  122. v-hasPermi="['gas:order:edit']"
  123. >查看详情
  124. </el-button>
  125. <!-- <p v-if="scope.row.orderStatus ==='001'">-->
  126. <!-- <el-button-->
  127. <!-- size="mini"-->
  128. <!-- type="text"-->
  129. <!-- icon="el-icon-edit"-->
  130. <!-- @click="handleUpdate(scope.row)"-->
  131. <!-- v-hasPermi="['gas:order:edit']"-->
  132. <!-- >审核-->
  133. <!-- </el-button>-->
  134. <!-- </p>-->
  135. <!-- <p v-if="scope.row.orderStatus ==='002'">-->
  136. <!-- <el-button-->
  137. <!-- size="mini"-->
  138. <!-- type="text"-->
  139. <!-- icon="el-icon-edit"-->
  140. <!-- @click="handleUpdate(scope.row)"-->
  141. <!-- v-hasPermi="['gas:order:edit']"-->
  142. <!-- >复核-->
  143. <!-- </el-button>-->
  144. <!-- </p>-->
  145. </template>
  146. </el-table-column>
  147. </el-table>
  148. <pagination
  149. v-show="total>0"
  150. :total="total"
  151. :page.sync="queryParams.pageNum"
  152. :limit.sync="queryParams.pageSize"
  153. @pagination="getList"
  154. />
  155. <!-- 添加或修改工程管理对话框 -->
  156. <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
  157. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  158. <el-form-item label="服务类别" prop="serviceType">
  159. <el-select disabled v-model="form.serviceType" placeholder="请选择服务类别">
  160. <el-option
  161. v-for="dict in dict.type.service_type"
  162. :key="dict.value"
  163. :label="dict.label"
  164. :value="dict.value"
  165. ></el-option>
  166. </el-select>
  167. </el-form-item>
  168. <el-form-item label="照片">
  169. <imageUpload v-model="form.photoList" :disabled="true"/>
  170. </el-form-item>
  171. <el-form-item label="职工" prop="userId">
  172. <el-select disabled v-model="form.userId" filterable placeholder="请选择职工">
  173. <el-option v-for="item in workerList" :key="item.id" :value="item.id" :label="item.name">{{
  174. item.name
  175. }}
  176. </el-option>
  177. </el-select>
  178. </el-form-item>
  179. <el-form-item label="所属小区" prop="areaId">
  180. <el-select disabled v-model="form.areaId" filterable placeholder="请选择小区"
  181. @change="getBuilding(form.areaId),resetform()">
  182. <el-option v-for="item in areaList" :key="item.id" :value="item.id" :label="item.name">{{
  183. item.name
  184. }}
  185. </el-option>
  186. </el-select>
  187. </el-form-item>
  188. <el-form-item label="所属楼宇" prop="buildingId">
  189. <el-select disabled v-model="form.buildingId" filterable placeholder="请选择楼宇"
  190. @change="getUnit(form.buildingId),resetunitform()">
  191. <el-option v-for="item in buildingList" :key="item.id" :value="item.id" :label="item.name">{{
  192. item.name
  193. }}
  194. </el-option>
  195. </el-select>
  196. </el-form-item>
  197. <el-form-item label="所属单元" prop="unitId">
  198. <el-select disabled v-model="form.unitId" filterable placeholder="请选择单元"
  199. @change="getHouse(form.unitId),resethouseform()">
  200. <el-option v-for="item in unitList" :key="item.id" :value="item.id" :label="item.name">{{
  201. item.name
  202. }}
  203. </el-option>
  204. </el-select>
  205. </el-form-item>
  206. <el-form-item label="房屋" prop="houseId">
  207. <el-select disabled v-model="form.houseId" filterable placeholder="请选择房屋">
  208. <el-option v-for="item in houseList" :key="item.id" :value="item.id" :label="item.name">{{
  209. item.name
  210. }}
  211. </el-option>
  212. </el-select>
  213. </el-form-item>
  214. <el-form-item label="管子类型" prop="pipeType">
  215. <el-radio-group disabled v-model="form.pipeType">
  216. <el-radio
  217. v-for="item in pipeTypeList"
  218. :key="item.pipeType"
  219. :label="item.pipeType"
  220. >{{ item.pipeType }}
  221. </el-radio>
  222. </el-radio-group>
  223. </el-form-item>
  224. <el-form-item label="管子长度" prop="pipeLength">
  225. <el-radio-group disabled v-model="form.pipeLength">
  226. <el-radio
  227. v-for="item in pipeLengthList"
  228. :key="item.pipeLength"
  229. :label="item.pipeLength"
  230. >{{ item.pipeLength }}
  231. </el-radio>
  232. </el-radio-group>
  233. </el-form-item>
  234. <el-form-item label="备注" prop="remark">
  235. <el-input disabled v-model="form.remark" type="textarea" placeholder="请输入内容"/>
  236. </el-form-item>
  237. </el-form>
  238. <div slot="footer" class="dialog-footer">
  239. <!-- <el-button :loading="buttonLoading" type="primary" @click="submitForm('001')">合格</el-button>-->
  240. <!-- <el-button :loading="buttonLoading" type="primary" @click="submitForm('002')">不合格</el-button>-->
  241. <el-button @click="cancel">取 消</el-button>
  242. </div>
  243. </el-dialog>
  244. </div>
  245. </template>
  246. <script>
  247. import {
  248. getListByStatus,
  249. getHouse,
  250. getUnit,
  251. getArea,
  252. getBuilding,
  253. getOrder,
  254. submitY,
  255. submitN,
  256. getWorker,
  257. getPipeType,
  258. getPipeLength,
  259. delOrder,
  260. addOrder,
  261. updateOrder
  262. } from "@/api/gas/order";
  263. export default {
  264. name: "Order",
  265. dicts: ['service_type', 'order_status', 'examine_status'],
  266. data() {
  267. return {
  268. // 按钮loading
  269. buttonLoading: false,
  270. // 遮罩层
  271. loading: true,
  272. // 导出遮罩层
  273. exportLoading: false,
  274. //职工下拉
  275. workerList: [],
  276. pipeLengthList: [],
  277. pipeTypeList: [],
  278. areaList: [],
  279. buildingList: [],
  280. unitList: [],
  281. houseList: [],
  282. // 选中数组
  283. ids: [],
  284. // 非单个禁用
  285. single: true,
  286. // 非多个禁用
  287. multiple: true,
  288. // 显示搜索条件
  289. showSearch: true,
  290. // 总条数
  291. total: 0,
  292. // 工程管理表格数据
  293. orderList: [],
  294. // 弹出层标题
  295. title: "",
  296. // 是否显示弹出层
  297. open: false,
  298. // 查询参数
  299. queryParams: {
  300. pageNum: 1,
  301. pageSize: 10,
  302. serviceType: undefined,
  303. userId: undefined,
  304. orderStatus: undefined,
  305. examineStatus: undefined,
  306. areaId: undefined,
  307. foremanId: undefined,
  308. workerId: undefined,
  309. value: undefined,
  310. },
  311. // 表单参数
  312. form: {},
  313. // 表单校验
  314. rules: {
  315. serviceType: [
  316. {required: true, message: "服务类别不能为空", trigger: "change"}
  317. ],
  318. userId: [
  319. {required: true, message: "职工id不能为空", trigger: "blur"}
  320. ],
  321. houseId: [
  322. {required: true, message: "房屋不能为空", trigger: "blur"}
  323. ],
  324. }
  325. };
  326. },
  327. created() {
  328. this.queryParams.areaId = this.$route.query.areaId
  329. this.queryParams.foremanId = this.$route.query.foremanId
  330. this.queryParams.workerId = this.$route.query.workerId
  331. this.queryParams.value = this.$route.query.value
  332. this.getList();
  333. this.getWorker();
  334. this.getPipeLength();
  335. this.getPipeType();
  336. },
  337. methods: {
  338. /** 查询工程管理列表 */
  339. getList() {
  340. this.loading = true;
  341. getListByStatus(this.queryParams).then(response => {
  342. this.orderList = response.rows;
  343. this.total = response.total;
  344. this.loading = false;
  345. });
  346. },
  347. /**工长下拉框*/
  348. getWorker() {
  349. getWorker().then(response => {
  350. this.workerList = response.data;
  351. });
  352. },
  353. //管子长度
  354. getPipeLength() {
  355. getPipeLength().then(response => {
  356. this.pipeLengthList = response.data;
  357. });
  358. },
  359. //管子长度
  360. getPipeType() {
  361. getPipeType().then(response => {
  362. this.pipeTypeList = response.data;
  363. });
  364. },
  365. /**小区下拉框*/
  366. getArea() {
  367. getArea().then(response => {
  368. this.areaList = response.data;
  369. });
  370. },
  371. /**楼宇下拉框*/
  372. getBuilding(areaId) {
  373. getBuilding(areaId).then(response => {
  374. this.buildingList = response.data;
  375. });
  376. },
  377. getUnit(buildingId) {
  378. getUnit(buildingId).then(response => {
  379. this.unitList = response.data;
  380. });
  381. },
  382. getHouse(unitId) {
  383. getHouse(unitId).then(response => {
  384. this.houseList = response.data;
  385. });
  386. },
  387. resetform() {
  388. this.form.buildingId = undefined;
  389. this.form.unitId = undefined;
  390. this.form.houseId = undefined;
  391. },
  392. resetunitform() {
  393. this.form.unitId = undefined;
  394. this.form.houseId = undefined;
  395. },
  396. resethouseform() {
  397. this.form.houseId = undefined;
  398. },
  399. // 取消按钮
  400. cancel() {
  401. this.open = false;
  402. this.reset();
  403. },
  404. // 表单重置
  405. reset() {
  406. this.form = {
  407. id: undefined,
  408. serviceType: undefined,
  409. picUrl: undefined,
  410. userId: undefined,
  411. unitId: undefined,
  412. buildingId: undefined,
  413. areaId: undefined,
  414. houseId: undefined,
  415. pipeLength: undefined,
  416. pipeType: undefined,
  417. remark: undefined,
  418. delFlag: undefined,
  419. createBy: undefined,
  420. createTime: undefined,
  421. updateBy: undefined,
  422. updateTime: undefined
  423. };
  424. this.resetForm("form");
  425. },
  426. /** 搜索按钮操作 */
  427. handleQuery() {
  428. this.queryParams.pageNum = 1;
  429. this.getList();
  430. },
  431. /** 重置按钮操作 */
  432. resetQuery() {
  433. this.resetForm("queryForm");
  434. this.handleQuery();
  435. },
  436. // 多选框选中数据
  437. handleSelectionChange(selection) {
  438. this.ids = selection.map(item => item.id)
  439. this.single = selection.length !== 1
  440. this.multiple = !selection.length
  441. },
  442. /** 新增按钮操作 */
  443. handleAdd() {
  444. this.reset();
  445. this.open = true;
  446. this.title = "添加工程管理";
  447. this.getWorker();
  448. this.getPipeLength();
  449. this.getPipeType();
  450. this.getArea();
  451. },
  452. /** 修改按钮操作 */
  453. handleUpdate(row) {
  454. this.loading = true;
  455. this.reset();
  456. this.getWorker();
  457. this.getPipeLength();
  458. this.getPipeType();
  459. this.getArea();
  460. const id = row.id || this.ids
  461. getOrder(id).then(response => {
  462. this.loading = false;
  463. this.form = response.data;
  464. this.open = true;
  465. this.title = "查看工程";
  466. this.getBuilding(this.form.areaId);
  467. this.getUnit(this.form.buildingId);
  468. this.getHouse(this.form.unitId);
  469. });
  470. },
  471. /** 提交按钮 */
  472. submitForm(status) {
  473. this.$refs["form"].validate(valid => {
  474. if (valid) {
  475. this.buttonLoading = true;
  476. this.form.examineStatus = status;
  477. this.form.orderStatus = "002";
  478. updateOrder(this.form).then(response => {
  479. this.$modal.msgSuccess("审核成功");
  480. }).finally(() => {
  481. this.buttonLoading = false;
  482. });
  483. }
  484. });
  485. this.getList();
  486. this.handleUpdate(this.orderList[0]);
  487. },
  488. /** 删除按钮操作 */
  489. handleDelete(row) {
  490. const ids = row.id || this.ids;
  491. this.$modal.confirm('是否确认删除工程管理编号为"' + ids + '"的数据项?').then(() => {
  492. this.loading = true;
  493. return delOrder(ids);
  494. }).then(() => {
  495. this.loading = false;
  496. this.getList();
  497. this.getWorker();
  498. this.$modal.msgSuccess("删除成功");
  499. }).finally(() => {
  500. this.loading = false;
  501. });
  502. },
  503. submitY(row) {
  504. const ids = row.id || this.ids;
  505. this.$modal.confirm("确定审核?").then(() => {
  506. this.loading = true;
  507. return submitY(ids);
  508. }).then(() => {
  509. this.loading = false;
  510. this.getList();
  511. this.getWorker();
  512. this.$modal.msgSuccess("审核成功");
  513. }).finally(() => {
  514. this.loading = false;
  515. });
  516. },
  517. submitN(row) {
  518. const ids = row.id || this.ids;
  519. this.$modal.confirm("确定审核?").then(() => {
  520. this.loading = true;
  521. return submitN(ids);
  522. }).then(() => {
  523. this.loading = false;
  524. this.getList();
  525. this.getWorker();
  526. this.$modal.msgSuccess("审核成功");
  527. }).finally(() => {
  528. this.loading = false;
  529. });
  530. },
  531. }
  532. };
  533. </script>