4b02f6923f61d8c44140e257d1e2fa5c50a13a87.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <template>
  2. <div :style="{'height': tableHeight1 + 'px'}">
  3. <el-button @click="addProblem" type="primary" style="float: right;margin-bottom: 10px" v-if="!ifReadyOnly">添加问题</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="80">
  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="120"
  21. prop="inspPblmName"
  22. label="问题类别"
  23. show-overflow-tooltip>
  24. </el-table-column>
  25. <el-table-column
  26. header-align="center"
  27. align="center"
  28. min-width="100"
  29. prop="checkPointBz"
  30. label="检查项目"
  31. show-overflow-tooltip>
  32. <template slot-scope="scope">
  33. <span>{{scope.row.checkPointBz | checkPointBz}}</span>
  34. </template>
  35. </el-table-column>
  36. <el-table-column
  37. header-align="center"
  38. align="center"
  39. min-width="100"
  40. prop="inspPblmDesc"
  41. label="详细描述"
  42. show-overflow-tooltip>
  43. </el-table-column>
  44. <el-table-column
  45. header-align="center"
  46. align="center"
  47. min-width="100"
  48. prop="ifCasePblm"
  49. label="是否典型"
  50. show-overflow-tooltip>
  51. <template slot-scope="scope">
  52. <span>{{scope.row.ifCasePblm == '1' ? '是' : scope.row.ifCasePblm == '0' ? '否' : ''}}</span>
  53. </template>
  54. </el-table-column>
  55. <el-table-column
  56. align="center"
  57. prop
  58. min-width="100"
  59. label="操作"
  60. show-overflow-tooltip>
  61. <template slot-scope="scope">
  62. <el-button icon="el-icon-view" type="text" @click="showDetails(scope.row.pblmId)"></el-button>
  63. <el-button icon="el-icon-edit" type="text" @click="changeSup(scope.row.pblmId)"
  64. v-if="ownPriv('manage') && !ifReadyOnly"></el-button>
  65. <el-button icon="el-icon-delete" type="text" v-if="ownPriv('manage') && !ifReadyOnly"
  66. @click="removeSuperviseOne(scope.row.pblmId)"
  67. ></el-button>
  68. </template>
  69. </el-table-column>
  70. </el-table>
  71. <!-- 分页 -->
  72. <div class="paginationWarpper">
  73. <el-pagination
  74. class="paginationCenter"
  75. background
  76. @size-change="handleSizeChange"
  77. @current-change="search"
  78. :current-page.sync="currentPage"
  79. :page-sizes="[10, 20, 50, 100]"
  80. :page-size="pageSize"
  81. layout="total, sizes, prev, pager, next, jumper"
  82. :total="total">
  83. </el-pagination>
  84. </div>
  85. <!-- 详情组件-->
  86. <el-dialog
  87. class="custom_dialog"
  88. title="问题详情"
  89. width="60%"
  90. append-to-body
  91. :visible.sync="supervisionDetailsVisible">
  92. <supervision-details ref="xianqing" :problemId="currentProblemId"></supervision-details>
  93. <span slot="footer">
  94. <el-button style="margin-top:5px;" @click="supervisionDetailsVisible = false">返回</el-button>
  95. </span>
  96. </el-dialog>
  97. <!-- 删除组件 -->
  98. <el-dialog class="deleteDialog" title="问题删除描述" append-to-body :visible.sync="problemDeleteVisible">
  99. <Problem-delete
  100. ref="deleteMiaoShu"
  101. :deleteProblemId="deleteId"
  102. @deleteSuccess="deleteSuccess"
  103. ></Problem-delete>
  104. <span slot="footer">
  105. <el-button @click="problemDeleteVisible = false">返回</el-button>
  106. </span>
  107. </el-dialog>
  108. <!-- 修改组件 -->
  109. <problem-edit :editId="editId" @closeEditDialog="closeEditDialog"
  110. v-if="changeSupervisionVisible"></problem-edit>
  111. <!-- 添加问题组件 -->
  112. <problem-dialog
  113. v-if="showAddProblemDialog"
  114. :objId="currentObjectId"
  115. :regId="currentObjectRgstrId"
  116. :objName="currentObjectName"
  117. @closeDialog="closePlDialog"
  118. fenlei="chuxian"
  119. :objType="34"
  120. :currentObjectRgstrId="currentObjectRgstrId">
  121. </problem-dialog>
  122. </div>
  123. </template>
  124. <script>
  125. import {formatDateTimeD} from '@util/gw_date.js'
  126. import problemDialog from "../../zxhlzl/addProblemDialog.vue";
  127. import request from '@util/gw_ajax_request.js'
  128. import {dateFormat} from "@util/gw_date";
  129. export default {
  130. props: ['currentObjectId', 'currentObjectName', 'currentObjectRgstrId', 'activeLabel', 'ifReadyOnly'],
  131. data() {
  132. return {
  133. tableHeight: window.innerHeight * .45,
  134. tableHeight1: window.innerHeight * .55,
  135. problemList: [],
  136. loading: false,
  137. currentPage: 1,
  138. pageSize: 10,
  139. pageNum: 1,
  140. total: 0,
  141. supervisionDetailsVisible: false,
  142. currentProblemId: '',
  143. problemDeleteVisible: false,
  144. deleteId: '',
  145. editId: '',
  146. changeSupervisionVisible: false,
  147. showAddProblemDialog: false,
  148. rsvrRules: null,
  149. probId: '',
  150. }
  151. },
  152. components: {
  153. //详情页
  154. supervisionDetails: resolve => {
  155. require(["./problemDetail.vue"], resolve);
  156. },
  157. // 删除描述页
  158. ProblemDelete: resolve => {
  159. require(["../../duChaWenTi/problemDelete.vue"], resolve);
  160. },
  161. // 修改问题
  162. problemEdit: resolve => {
  163. require(["./problemModify.vue"], resolve);
  164. },
  165. problemDialog
  166. },
  167. computed: {
  168. persId() {
  169. return localStorage.getItem("userid") ? localStorage.getItem("userid") : "1098101939614724096";
  170. }
  171. },
  172. created() {
  173. },
  174. mounted() {
  175. this.getProblemList()
  176. },
  177. methods: {
  178. getProblemList() {
  179. let problemForm = {}
  180. problemForm.regid = this.currentObjectRgstrId;
  181. problemForm.pageNum = this.currentPage;
  182. problemForm.pageSize = this.pageSize;
  183. problemForm.presId = this.persId;
  184. problemForm['objType'] = '34';
  185. this.loading = true;
  186. request.post(`/dc/insp/pblm/page`, problemForm).then(res => {
  187. if (res.success) {
  188. res.data.list.forEach((item) => {
  189. if (item.fdTm) {
  190. item.findTime = typeof (item.fdTm) == 'string' ? item.fdTm : dateFormat(item.fdTm, 'yyyy-MM-dd')
  191. }
  192. })
  193. this.problemList = res.data.list;
  194. this.total = res.data.total;
  195. this.loading = false;
  196. }
  197. }).catch(err => {
  198. this.$message.error(err)
  199. this.loading = false;
  200. });
  201. },
  202. showDetails(pblmId) {
  203. this.currentProblemId = pblmId
  204. this.supervisionDetailsVisible = true
  205. },
  206. changeSup(pblmId) {
  207. this.editId = pblmId
  208. this.changeSupervisionVisible = true
  209. },
  210. removeSuperviseOne(pblmId) {
  211. this.deleteId = pblmId
  212. this.problemDeleteVisible = true
  213. },
  214. deleteSuccess() {
  215. this.problemDeleteVisible = false;
  216. this.getProblemList();
  217. },
  218. search(val) {
  219. this.currentPage = val
  220. this.getProblemList()
  221. },
  222. handleSizeChange() {
  223. },
  224. timestampToTime(row, column) {
  225. var date = new Date(row);
  226. var Y = date.getFullYear() + "-";
  227. var M =
  228. (date.getMonth() + 1 < 10
  229. ? "0" + (date.getMonth() + 1)
  230. : date.getMonth() + 1) + "-";
  231. var D =
  232. (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  233. var h =
  234. (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  235. var m =
  236. date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
  237. return Y + M + D + h + m;
  238. },
  239. closeEditDialog() {
  240. this.getProblemList()
  241. this.changeSupervisionVisible = false
  242. },
  243. addProblem(item) {
  244. // let rest = this.rsvrRules;
  245. // this.probId = rest[0].id;
  246. this.showAddProblemDialog = true;
  247. },
  248. closePlDialog(val) {
  249. this.showAddProblemDialog = false;
  250. this.getProblemList()
  251. }
  252. },
  253. watch: {
  254. activeLabel(val) {
  255. if (val == '问题清单') {
  256. this.getProblemList()
  257. }
  258. }
  259. },
  260. filters: {
  261. checkPointBz(val) {
  262. if (val == '1') {
  263. return '质量安全'
  264. } else if (val == '2') {
  265. return '合同'
  266. } else if (val == '3') {
  267. return '资金'
  268. } else {
  269. return ''
  270. }
  271. }
  272. }
  273. }
  274. </script>
  275. <style scoped>
  276. </style>