e305df3fe302bcffb19e6be6464a5d94ffbe5a4c.svn-base 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. <template>
  2. <div>
  3. <el-button @click="addProblem" type="primary" style="float: right;margin-bottom:10px" v-if="openType">添加问题</el-button>
  4. <el-table
  5. v-loading="loading"
  6. border
  7. ref="multipleTable"
  8. :data="problemList"
  9. :height="tableHeight"
  10. tooltip-effect="dark"
  11. style="width: 100%">
  12. <el-table-column align="center" type="index" label="序号" min-width="40">
  13. <template slot-scope="scope">
  14. {{ (currentPage - 1) * pageSize + (scope.$index + 1) }}
  15. </template>
  16. </el-table-column>
  17. <el-table-column
  18. header-align="center"
  19. align="center"
  20. min-width="140"
  21. prop="inspPblmsName"
  22. label="问题类别"
  23. show-overflow-tooltip>
  24. </el-table-column>
  25. <!--<el-table-column-->
  26. <!--header-align="center"-->
  27. <!--align="center"-->
  28. <!--min-width="120"-->
  29. <!--prop="checkPointBz"-->
  30. <!--label="检查项目"-->
  31. <!--show-overflow-tooltip>-->
  32. <!--</el-table-column>-->
  33. <el-table-column
  34. header-align="center"
  35. align="center"
  36. min-width="130"
  37. prop="inspPblmDesc"
  38. label="详细描述"
  39. show-overflow-tooltip>
  40. </el-table-column>
  41. <el-table-column
  42. header-align="center"
  43. align="center"
  44. min-width="130"
  45. prop="inspPblmOrgName"
  46. label="责任单位"
  47. show-overflow-tooltip>
  48. </el-table-column>
  49. <el-table-column
  50. header-align="center"
  51. align="center"
  52. min-width="130"
  53. prop="pblmReason"
  54. label="问题原因分析"
  55. show-overflow-tooltip>
  56. </el-table-column>
  57. <el-table-column
  58. header-align="center"
  59. align="center"
  60. min-width="130"
  61. prop="pblmSggtn"
  62. label="整改意见"
  63. show-overflow-tooltip>
  64. </el-table-column>
  65. <el-table-column
  66. prop="wtdstNote"
  67. label="检查日期"
  68. sortable
  69. align="center"
  70. min-width="120"
  71. show-overflow-tooltip>
  72. </el-table-column>
  73. <el-table-column
  74. align="center"
  75. prop
  76. min-width="100"
  77. label="操作"
  78. show-overflow-tooltip
  79. fixed="right">
  80. <template slot-scope="scope">
  81. <el-button icon="el-icon-view" type="text" @click="showDetails(scope.row.pblmId)"></el-button>
  82. <el-button icon="el-icon-edit" type="text" @click="changeSup(scope.row.pblmId)"
  83. v-if="ownPriv('manage') && openType"></el-button>
  84. <el-button icon="el-icon-delete" type="text" v-if="ownPriv('manage') && openType"
  85. @click="removeSuperviseOne(scope.row.pblmId)"
  86. ></el-button>
  87. </template>
  88. </el-table-column>
  89. </el-table>
  90. <!-- 分页 -->
  91. <div class="paginationWarpper">
  92. <el-pagination
  93. class="paginationCenter"
  94. background
  95. @size-change="handleSizeChange"
  96. @current-change="search"
  97. :current-page.sync="currentPage"
  98. :page-sizes="[10, 20, 50, 100]"
  99. :page-size="pageSize"
  100. layout="total, sizes, prev, pager, next, jumper"
  101. :total="total">
  102. </el-pagination>
  103. </div>
  104. <!-- 详情组件-->
  105. <el-dialog
  106. class="custom_dialog"
  107. title="问题详情"
  108. width="60%"
  109. append-to-body
  110. :visible.sync="supervisionDetailsVisible">
  111. <supervision-details ref="xianqing" :problemId="currentProblemId" :objType="26"></supervision-details>
  112. <span slot="footer">
  113. <el-button style="margin-top:5px;" @click="supervisionDetailsVisible = false">返回</el-button>
  114. </span>
  115. </el-dialog>
  116. <!-- 删除组件 -->
  117. <el-dialog class="deleteDialog" title="问题删除描述" append-to-body :visible.sync="problemDeleteVisible">
  118. <Problem-delete
  119. ref="deleteMiaoShu"
  120. :deleteProblemId="deleteId"
  121. @deleteSuccess="deleteSuccess"
  122. ></Problem-delete>
  123. <span slot="footer">
  124. <el-button @click="problemDeleteVisible = false">返回</el-button>
  125. </span>
  126. </el-dialog>
  127. <!-- 修改组件 -->
  128. <problem-edit :editId="editId" @closeEditDialog="closeEditDialog" v-if="changeSupervisionVisible"
  129. :pblmNameBz="pblmNameBz"></problem-edit>
  130. <!-- 添加问题组件 -->
  131. <problem-dialog
  132. v-if="showAddProblemDialog"
  133. :objType="26"
  134. :villType="36"
  135. :objId="currentObjectId"
  136. :objName="currentObjectName"
  137. :problemMiddleType="'水库防洪调度'"
  138. @closeDialog="closePlDialog"
  139. :newModelData="newModelData"
  140. :regId="currentObjectRgstrId"
  141. :pblmNameBz="pblmNameBz"
  142. :rowData="rowData">
  143. </problem-dialog>
  144. <el-dialog
  145. class="pblmEascader"
  146. title="新增问题"
  147. width="60%"
  148. append-to-body
  149. :visible.sync="pblmEascaderVisible">
  150. <pblmEascader :objType="26" @modelData="modelData" v-if="pblmEascaderVisible"
  151. :pblmNameBz="pblmNameBz"></pblmEascader>
  152. <span slot="footer">
  153. <el-button @click="pblmEascaderVisible=false">返 回</el-button>
  154. <el-button type="primary" @click="submitEascader">确 定</el-button>
  155. </span>
  156. </el-dialog>
  157. </div>
  158. </template>
  159. <script>
  160. import problemDialog from "../../duChaWenTi/addProblem/xiaoshuiku_problem_dialog.vue";
  161. import request from '@util/gw_ajax_request.js'
  162. import pblmEascader from '../project/pblmEascaderFangHong'
  163. export default {
  164. props: ['currentObjectId', 'currentObjectName', 'currentObjectRgstrId', 'activeLabel', 'rowData', 'pblmNameBz','openType'],
  165. data() {
  166. return {
  167. tableHeight: 490,
  168. problemList: [],
  169. loading: false,
  170. currentPage: 1,
  171. pageSize: 10,
  172. pageNum: 1,
  173. total: 0,
  174. supervisionDetailsVisible: false,
  175. currentProblemId: '',
  176. problemDeleteVisible: false,
  177. deleteId: '',
  178. editId: '',
  179. changeSupervisionVisible: false,
  180. showAddProblemDialog: false,
  181. rsvrRules: null,
  182. probId: '',
  183. pblmEascaderVisible: false,
  184. newModelData: null
  185. }
  186. },
  187. components: {
  188. //详情页
  189. supervisionDetails: resolve => {
  190. require(["../../duChaWenTi/supervisionDetails_fanghong.vue"], resolve);
  191. },
  192. // 删除描述页
  193. ProblemDelete: resolve => {
  194. require(["../../duChaWenTi/problemDelete.vue"], resolve);
  195. },
  196. // 修改问题
  197. problemEdit: resolve => {
  198. require(["../../duChaWenTi/problemModify/fanghongProblemModifyNew.vue"], resolve);
  199. },
  200. problemDialog,
  201. pblmEascader
  202. },
  203. computed: {
  204. persId() {
  205. return localStorage.getItem("userid") ? localStorage.getItem("userid") : "1098101939614724096";
  206. }
  207. },
  208. created() {
  209. // this.findItemByType()
  210. },
  211. mounted() {
  212. this.getProblemList()
  213. },
  214. methods: {
  215. getProblemList() {
  216. let problemForm = {}
  217. problemForm.objId = this.rowData.objId;
  218. problemForm.objType = '26';
  219. problemForm.pageNum = this.currentPage;
  220. problemForm.pageSize = this.pageSize;
  221. problemForm.presId = this.persId;
  222. problemForm.pblmNameBz = this.pblmNameBz;
  223. this.loading = true;
  224. request.post(`/dc/insp/pblm/list/${this.persId}`, problemForm).then(res => {
  225. if (res.success) {
  226. var list = [];
  227. for(var i = 0;i<res.data.list.length;i++){
  228. if(res.data.list[i].pblmNameBz==this.pblmNameBz){
  229. list.push(res.data.list[i]);
  230. }
  231. }
  232. this.problemList = list;
  233. this.total = res.data.total;
  234. this.loading = false;
  235. }
  236. }).catch(err => {
  237. this.$message.error(err)
  238. this.loading = false;
  239. });
  240. },
  241. showDetails(pblmId) {
  242. this.currentProblemId = pblmId
  243. this.supervisionDetailsVisible = true
  244. },
  245. changeSup(pblmId) {
  246. this.editId = pblmId
  247. this.changeSupervisionVisible = true
  248. },
  249. removeSuperviseOne(pblmId) {
  250. this.deleteId = pblmId
  251. this.problemDeleteVisible = true
  252. },
  253. deleteSuccess() {
  254. this.problemDeleteVisible = false;
  255. this.getProblemList();
  256. },
  257. search(val) {
  258. this.currentPage = val
  259. this.getProblemList()
  260. },
  261. handleSizeChange() {
  262. },
  263. // timestampToTime(row, column) {
  264. // var date = new Date(row.wtdstNote);
  265. // var Y = date.getFullYear() + "-";
  266. // var M =
  267. // (date.getMonth() + 1 < 10
  268. // ? "0" + (date.getMonth() + 1)
  269. // : date.getMonth() + 1) + "-";
  270. // var D =
  271. // (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  272. // var h =
  273. // (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  274. // var m =
  275. // date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
  276. // return Y + M + D;
  277. // },
  278. closeEditDialog() {
  279. this.changeSupervisionVisible = false
  280. setTimeout(() => {
  281. this.getProblemList()
  282. }, 800)
  283. },
  284. findItemByType() {
  285. const obj = {
  286. tname: "BIS_INSP_RSFCO_RGSTR_FLLI"
  287. }
  288. request.post("/bis/insp/item/ques/info/findItemByType", obj).then(res => {
  289. this.rsvrRules = res.data;
  290. })
  291. },
  292. addProblem(item) {
  293. this.pblmEascaderVisible = true;
  294. },
  295. closePlDialog(val) {
  296. this.showAddProblemDialog = false;
  297. this.getProblemList();
  298. this.newModelData = null;
  299. },
  300. submitEascader() {
  301. if (!this.newModelData || !this.newModelData.model.length) {
  302. this.$message.warning('问题不可以为空');
  303. return;
  304. }
  305. this.pblmEascaderVisible = false;
  306. // let rest = this.rsvrRules
  307. // this.probId = rest[0].id;
  308. this.showAddProblemDialog = true
  309. },
  310. modelData(val) {
  311. this.newModelData = val;
  312. }
  313. },
  314. watch: {
  315. activeLabel(val) {
  316. if (val == '问题清单') {
  317. this.getProblemList()
  318. }
  319. }
  320. }
  321. }
  322. </script>
  323. <style lang="scss">
  324. .pblmEascader .el-dialog__body {
  325. height: 15vh;
  326. overflow: auto;
  327. }
  328. </style>