6eccf9cf290d4dc7b484b269c4bdf3bdbe08ba2b.svn-base 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. <template>
  2. <el-dialog
  3. :title="titleType + '问题标准'"
  4. @close="closeDialog"
  5. :visible.sync="dialogFormVisible"
  6. append-to-body
  7. >
  8. <el-form :model="form" :rules="rules" ref="form" label-width="100px">
  9. <el-form-item label="问题类别" prop="inspPblmsName">
  10. <el-select
  11. v-model="form.inspPblmsName"
  12. clearable
  13. placeholder="请选择问题类别"
  14. @change="problemListChange"
  15. >
  16. <el-option
  17. v-for="(item,index) in problemList"
  18. :key="index"
  19. :label="item.inspPblmsName"
  20. :value="item.inspPblmsName"
  21. ></el-option>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="检查项目" prop="checkPoint">
  25. <el-select
  26. v-model="form.checkPoint"
  27. clearable
  28. placeholder="请选择检查项目"
  29. value-key="checkPointName"
  30. >
  31. <el-option
  32. v-for="(item,index) in currentCheckPointList"
  33. :key="index"
  34. :label="item.label"
  35. :value="item.checkPointName"
  36. ></el-option>
  37. </el-select>
  38. </el-form-item>
  39. <el-form-item label="附件序号" prop="attach">
  40. <el-input v-model="form.attach" placeholder="输入附件序号" clearable style="width: 140px"></el-input>
  41. </el-form-item>
  42. <el-form-item label="问题序号">
  43. <el-input v-model="form.snNum" autocomplete="off"></el-input>
  44. </el-form-item>
  45. <el-form-item label="问题描述">
  46. <el-input v-model="form.pblmDesc" type="textarea" :rows="5" autocomplete="off"></el-input>
  47. </el-form-item>
  48. <el-form-item label="严重程度">
  49. <div>
  50. <el-radio v-model="form.inspPblmCate" label="0">一般</el-radio>
  51. <span class="add_desc" @click="appearDes0cInput = !appearDes0cInput">添加描述</span>
  52. <div class="demo-input-suffix" v-if="appearDes0cInput">
  53. 描述信息:
  54. <el-input v-model="form.cate0Desc" autocomplete="off"></el-input>
  55. </div>
  56. </div>
  57. <div>
  58. <el-radio v-model="form.inspPblmCate" label="1">较重</el-radio>
  59. <span class="add_desc" @click="appearDes1cInput = !appearDes1cInput">添加描述</span>
  60. <div class="demo-input-suffix" v-if="appearDes1cInput">
  61. 描述信息:
  62. <el-input v-model="form.cate1Desc" autocomplete="off"></el-input>
  63. </div>
  64. </div>
  65. <div>
  66. <el-radio v-model="form.inspPblmCate" label="2">严重</el-radio>
  67. <span class="add_desc" @click="appearDes2cInput = !appearDes2cInput">添加描述</span>
  68. <div class="demo-input-suffix" v-if="appearDes2cInput">
  69. 描述信息:
  70. <el-input v-model="form.cate2Desc" autocomplete="off"></el-input>
  71. </div>
  72. </div>
  73. <div>
  74. <el-radio v-model="form.inspPblmCate" label="3">特别严重</el-radio>
  75. <span class="add_desc" @click="appearDes3cInput = !appearDes3cInput">添加描述</span>
  76. <div class="demo-input-suffix" v-if="appearDes3cInput">
  77. 描述信息:
  78. <el-input v-model="form.cate3Desc" autocomplete="off"></el-input>
  79. </div>
  80. </div>
  81. </el-form-item>
  82. </el-form>
  83. <div slot="footer" class="dialog-footer">
  84. <el-button @click="closeDialog">取 消</el-button>
  85. <el-button type="primary" @click="submitNewProblem">保 存</el-button>
  86. </div>
  87. </el-dialog>
  88. </template>
  89. <script>
  90. import request from "@util/gw_ajax_request.js";
  91. import { formatDateTime2 } from "@util/gw_date.js";
  92. export default {
  93. props: ["titleType", "rowData", "listType"],
  94. data() {
  95. let _this = this;
  96. return {
  97. form: {
  98. checkPoint: "",
  99. inspPblmCate: "", //问题状态,0:一般,1:较重,2:严重
  100. inspPblmsName: "",
  101. pblmDesc: "", //问题描述
  102. snNum: "", //问题序号
  103. type: "1", //督查类型必传
  104. attach: "", //字段是附件
  105. cate0Desc: "",
  106. cate1Desc: "",
  107. cate2Desc: "",
  108. cate3Desc: "",
  109. sn: ""
  110. },
  111. dialogFormVisible: true,
  112. currentCheckPointList: [],
  113. problemList: [],
  114. subclassList: [],
  115. faguiList: [],
  116. problemType: [
  117. { label: "一般", value: "0" },
  118. { label: "较重", value: "1" },
  119. { label: "严重", value: "2" },
  120. { label: "特别严重", value: "3" }
  121. ],
  122. appearDes0cInput: false,
  123. appearDes1cInput: false,
  124. appearDes2cInput: false,
  125. appearDes3cInput: false,
  126. rules: {
  127. inspPblmsName: [
  128. { required: true, message: "请选择问题类别", trigger: "change" }
  129. ],
  130. checkPoint: [
  131. { required: true, message: "请选择检查项目", trigger: "change" }
  132. ],
  133. attach: [{ required: true, message: "请输入附件序号", trigger: "blur" }]
  134. }
  135. };
  136. },
  137. mounted() {
  138. if (this.titleType == "编辑") {
  139. // this.form = this.rowData
  140. for (var i in this.form) {
  141. this.form[i] = this.rowData[i]; //点击编辑时将选中的行数据填充到表单当中
  142. }
  143. this.form["guid"] = this.rowData["guid"];
  144. //this.form.intm = formatDateTime2(this.form.intm);
  145. this.problemListChange();
  146. this.getPblmTypeMenu(); // 获取问题类型
  147. } else {
  148. this.getPblmTypeMenu(); // 获取问题类型
  149. if (this.listType) {
  150. this.form.inspPblmsName = this.listType;
  151. } else {
  152. this.form.inspPblmsName = "";
  153. }
  154. this.problemListChange();
  155. }
  156. },
  157. methods: {
  158. // add by luochenghai 20191129 后台获取问题类别
  159. getPblmTypeMenu() {
  160. var _self = this;
  161. let result = [];
  162. request
  163. .get("/dc/insp/pblms/getPblmType", {
  164. params: {
  165. type: "1"
  166. // pguid: '10000000000000000000000000000000'
  167. }
  168. })
  169. .then(res => {
  170. if (res.success) {
  171. res.data.forEach(ele => {
  172. let haveinspPblmsName = false;
  173. result.forEach(inspPblm => {
  174. if (inspPblm["inspPblmsName"] == ele.inspPblmsName) {
  175. //
  176. let havechekPoint = false;
  177. inspPblm["checkPoints"].forEach(chekPoint => {
  178. if (chekPoint["checkPointName"] == ele.checkPoint) {
  179. //
  180. chekPoint["pblmDescs"].push({
  181. pblmDesc: ele.pblmDesc,
  182. sn: ele.sn,
  183. guid: ele.guid
  184. });
  185. havechekPoint = true;
  186. }
  187. });
  188. if (!havechekPoint) {
  189. let newCheckPoint = {};
  190. newCheckPoint["checkPointName"] = ele.checkPoint;
  191. newCheckPoint["sort2"] = ele.sort2;
  192. newCheckPoint["pblmDescs"] = [
  193. {
  194. pblmDesc: ele.pblmDesc,
  195. sn: ele.sn,
  196. guid: ele.guid
  197. }
  198. ];
  199. inspPblm["checkPoints"].push(newCheckPoint);
  200. }
  201. haveinspPblmsName = true;
  202. }
  203. });
  204. if (!haveinspPblmsName) {
  205. let haveinspPblmsObj = {};
  206. haveinspPblmsObj["inspPblmsName"] = ele.inspPblmsName;
  207. haveinspPblmsObj["sort1"] = ele.sort1;
  208. haveinspPblmsObj["checkPoints"] = [
  209. {
  210. checkPointName: ele.checkPoint,
  211. sort2: ele.sort2,
  212. pblmDescs: [
  213. {
  214. pblmDesc: ele.pblmDesc,
  215. sn: ele.sn,
  216. guid: ele.guid
  217. }
  218. ]
  219. }
  220. ];
  221. result.push(haveinspPblmsObj);
  222. }
  223. });
  224. _self.problemList = result;
  225. }
  226. });
  227. },
  228. problemListChange: function(item) {
  229. console.log("打印出来看看" + item);
  230. for (var i = 0; i < this.problemList.length; i++) {
  231. if (this.problemList[i].inspPblmsName == item) {
  232. this.currentCheckPointList = this.problemList[i].checkPoints;
  233. // console.log( this.currentCheckPointList);
  234. }
  235. }
  236. },
  237. //小水库 添加问题分类
  238. submitNewProblemApi(data) {
  239. return request({
  240. url: `/dc/insp/pblms`,
  241. method: "POST",
  242. data: data
  243. });
  244. },
  245. //小水库 编辑问题分类
  246. submitEditProblemApi(data) {
  247. return request({
  248. url: `/dc/insp/pblms/update`,
  249. method: "POST",
  250. data: data
  251. });
  252. },
  253. // 保存
  254. submitNewProblem() {
  255. this.$refs["form"].validate(valid => {
  256. if (valid) {
  257. if (this.titleType == "编辑"){
  258. this.submitEditProblemApi(this.form)
  259. .then(res => {
  260. if (res.success) {
  261. this.$message.success("修改成功");
  262. this.$emit("dialogClose");
  263. } else {
  264. this.$message.error(res.message);
  265. }
  266. })
  267. .catch(err => {
  268. this.$message.error(err);
  269. });
  270. }
  271. // 添加问题
  272. else{
  273. this.submitNewProblemApi(this.form)
  274. .then(res => {
  275. if (res.success) {
  276. this.$message.success("添加成功");
  277. this.$emit("dialogClose");
  278. } else {
  279. this.$message.error(res.message);
  280. }
  281. })
  282. .catch(err => {
  283. this.$message.error(err);
  284. });
  285. }
  286. } else {
  287. return false;
  288. }
  289. });
  290. },
  291. // 取消
  292. closeDialog() {
  293. this.$emit("dialogClose");
  294. }
  295. },
  296. watch: {}
  297. };
  298. </script>
  299. <style lang="scss">
  300. .max_width {
  301. max-width: 1200px;
  302. }
  303. </style>