2caa59e7f72086c6d124025aa1428eed08fe2dd9.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. <template>
  2. <div>
  3. <el-form ref="problemForm" :rules="rules" :model="problemForm" label-width="80px">
  4. <el-form-item>
  5. <el-button type="text" @click="selectPblm" style="float: left;">选择问题</el-button>
  6. </el-form-item>
  7. <el-form-item label="问题类别" style="text-align:left">
  8. <el-select v-model="t1" value-key="inspPblmsName" placeholder="请选择" disabled>
  9. <el-option v-for="(item,index) in problemList" :key="index" :label="item.inspPblmsName"
  10. :value="item">
  11. </el-option>
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="检查项目" style="text-align:left">
  15. <el-select v-model="t2" placeholder="请选择" value-key="checkPointName" disabled>
  16. <el-option v-for="(item,index) in currentCheckPointList" :key="index" :label="item.checkPointName"
  17. :value="item">
  18. </el-option>
  19. </el-select>
  20. </el-form-item>
  21. <el-form-item label="问题描述" style="text-align:left">
  22. <el-input v-model="t3" type="textarea" :rows="4" placeholder="" disabled></el-input>
  23. </el-form-item>
  24. <el-form-item label="严重程度:" style="text-align:left" prop="inspPblmCate">
  25. <p v-if="inspPblmCate == 0">一般</p>
  26. <p v-if="inspPblmCate == 1">较重</p>
  27. <p v-if="inspPblmCate == 2">严重</p>
  28. <p v-if="inspPblmCate == 3">特别严重</p>
  29. </el-form-item>
  30. <el-form-item label="典型问题" label-width="80px" style="text-align:left">
  31. <el-radio v-model="problemForm.ifCasePblm" label="1">是</el-radio>
  32. <el-radio v-model="problemForm.ifCasePblm" label="0">否</el-radio>
  33. </el-form-item>
  34. <el-form-item label="具体描述" prop="inspPblmDesc">
  35. <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="problemForm.inspPblmDesc">
  36. </el-input>
  37. </el-form-item>
  38. <el-form-item label="建议措施" :rules="{required: false}">
  39. <el-input type="textarea" v-model="problemForm.note" autocomplete="off"></el-input>
  40. </el-form-item>
  41. <el-form-item label="备注">
  42. <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="problemForm.wtdstNote">
  43. </el-input>
  44. </el-form-item>
  45. <el-form-item label="上传照片">
  46. <upload ref="uploadFile" :url="`/pdcApi/file/insert?bizId=`" @uploadOver="removeNewSupervision"></upload>
  47. </el-form-item>
  48. <el-form-item style="margin-top: 50px">
  49. <el-button type="primary" @click="onSubmit('problemForm')" style="width: 100px;float:right"
  50. :loading="isClicked">保存</el-button>
  51. </el-form-item>
  52. </el-form>
  53. <el-dialog class="pblmEascader" title="选择问题" width="60%" append-to-body :visible.sync="pblmEascaderVisible">
  54. <pblmEascader :objType="3" @modelData="modelData" :vmodelData="newPblmValue" :t3="t3"></pblmEascader>
  55. <span slot="footer">
  56. <el-button @click="pblmEascaderVisible=false">返 回</el-button>
  57. <el-button type="primary" @click="submitEascader">确 定</el-button>
  58. </span>
  59. </el-dialog>
  60. </div>
  61. </template>
  62. <script>
  63. import request from '@util/gw_ajax_request.js'
  64. import pblmEascader from '../../duChaTianBao/project/pblmEascader'
  65. import {
  66. submitUpload
  67. } from "@api/duChaAPI.js";
  68. export default {
  69. props: ['objId', 'objName', 'villType', 'objType', 'engId', 'regId', 'newModelData'],
  70. data() {
  71. return {
  72. problemForm: {
  73. t1: '',
  74. t2: '',
  75. t3: '',
  76. villType: '',
  77. objId: "",
  78. regid: '',
  79. objType: "",
  80. // inspPblmName: "",
  81. inspPblmCate: "",
  82. inspPblmDesc: "",
  83. ifCasePblm: '0',
  84. pblmStat: "",
  85. dataStat: "",
  86. nm: "",
  87. recPers: "",
  88. note: "",
  89. gwComFiles: [{
  90. id: "",
  91. filePath: "",
  92. bizId: ""
  93. }]
  94. },
  95. inspPblmCate: "",
  96. inspPlamCatelist: ['一般', '较重', '严重'],
  97. imgList: [],
  98. videoList: [],
  99. audioList: [],
  100. pblmStat: '',
  101. gwComFiles: [],
  102. problemList: [],
  103. tempResult: [], // add by lch
  104. currentCheckPointList: [],
  105. currentProblemDescList: [],
  106. t1: '',
  107. t2: '',
  108. t3: '',
  109. xiangqingmiaoshu: '',
  110. wenTiLeiBie: "",
  111. jianChaXiangMu: "",
  112. rules: {
  113. inspPblmDesc: [{
  114. required: true,
  115. message: '请输入问题描述',
  116. trigger: 'blur'
  117. },
  118. ],
  119. },
  120. isClicked: false,
  121. pblmEascaderVisible: false,
  122. newPblmValue: []
  123. }
  124. },
  125. components: {
  126. upload: resolve => {
  127. require(["../../../widgets/uploadFile.vue"], resolve);
  128. },
  129. pblmEascader
  130. },
  131. computed: {
  132. recPers() {
  133. return localStorage.getItem('userid') ? localStorage.getItem('userid') : '';
  134. }
  135. },
  136. mounted() {
  137. this.newPblmValue = this.newModelData;
  138. if (this.newPblmValue) {
  139. this.t1 = this.newPblmValue.model[0];
  140. this.t2 = this.newPblmValue.model[1];
  141. this.t3 = this.newPblmValue.label;
  142. this.getYanZhongChengDu();
  143. }
  144. },
  145. methods: {
  146. getYanZhongChengDu() {
  147. if (this.t1) {
  148. request.post('/dc/insp/pblms/getPblmsByType', {
  149. inspPblmsName: this.t1,
  150. checkPoint: this.t2,
  151. pblmDesc: this.t3,
  152. type: this.objType
  153. }).then(res => {
  154. if (res.success) {
  155. console.log("验证" + res);
  156. this.inspPblmCate = res.data.inspPblmCate;
  157. }
  158. })
  159. }
  160. },
  161. onSubmit(problemForm) {
  162. let _self = this;
  163. if (!_self.isClicked) {
  164. _self.$refs[problemForm].validate((valid) => {
  165. if (valid) {
  166. _self.problemForm.villType = '0';
  167. _self.problemForm.recPers = _self.recPers
  168. _self.problemForm.objId = _self.objId;
  169. _self.problemForm.regid = _self.regId;
  170. _self.problemForm.nm = _self.objName
  171. _self.problemForm.objType = '3';
  172. _self.problemForm.pblmStat = "0";
  173. _self.problemForm['inspPblmCate'] = _self.inspPblmCate;// add by lch 解决添加问题时 该字段不能为空的错
  174. _self.problemForm['inspPblmName'] = _self.t1;
  175. _self.problemForm['inspPblmDesc'] = _self.problemForm.inspPblmDesc;
  176. _self.problemForm['inspPlbmType'] = _self.t2;
  177. // this.problemForm['inspPblmName'] = this.t3.pblmDesc;
  178. _self.problemForm['inspPblmCode'] = _self.t3;
  179. _self.problemForm['pblmsTypeId'] = _self.newPblmValue.model[2];
  180. if (!_self.problemForm.inspPblmName) {
  181. _self.$message.info('问题类别不能为空')
  182. return
  183. }
  184. if (!_self.problemForm.inspPlbmType) {
  185. _self.$message.info('检查项目不能为空')
  186. return
  187. }
  188. if (!_self.problemForm.inspPblmCode) {
  189. _self.$message.info('问题描述不能为空')
  190. return
  191. }
  192. _self.isClicked = true
  193. request.post('/dc/insp/pblm', _self.problemForm).then(res => {
  194. if (res.success) {
  195. _self.pblmId = res.data.pblmId;
  196. _self.gwComFiles = [];
  197. _self.pblmStat = res.data.pblmStat;
  198. if (_self.$refs.uploadFile.submitUpload(res.data.pblmId)) {
  199. _self.removeNewSupervision();
  200. }
  201. }
  202. _self.isClicked = false
  203. })
  204. } else {
  205. console.log('error submit!!');
  206. return false;
  207. }
  208. });
  209. }
  210. },
  211. // 文件上传
  212. submitUpload() {
  213. this.$refs.upload.submit();
  214. },
  215. updatefilelist(arg) {
  216. request.post('/dc/insp/pblm/update', {
  217. pblmId: this.pblmId,
  218. gwComFiles: arg,
  219. pblmStat: this.pblmStat
  220. }).then(res => {
  221. this.removeNewSupervision()
  222. });
  223. },
  224. removeNewSupervision(arg) {
  225. if (arg) {
  226. console.log(arg);
  227. var args = this.gwComFiles.concat(arg);
  228. this.updatefilelist(args);
  229. return;
  230. }
  231. this.$message.success('保存成功')
  232. this.$emit('closeDialog')
  233. this.gwComFiles = [];
  234. this.$refs.uploadFile.init();
  235. },
  236. problemListChange: function (item) {
  237. this.currentCheckPointList = item.checkPoints;
  238. },
  239. currentCheckPointListChange: function (item) {
  240. this.currentProblemDescList = item.pblmDescs;
  241. },
  242. // currentProblemDescListChange: function (item) {
  243. // console.log(item);
  244. // },
  245. modelData(val) {
  246. this.newPblmValue = val;
  247. this.t1 = this.newPblmValue.model[0];
  248. this.t2 = this.newPblmValue.model[1];
  249. this.t3 = this.newPblmValue.label;
  250. this.getYanZhongChengDu();
  251. },
  252. selectPblm() {
  253. this.pblmEascaderVisible = true;
  254. },
  255. submitEascader() {
  256. if (!this.newPblmValue.model.length) {
  257. this.$message.warning('问题不能为空');
  258. return;
  259. }
  260. this.pblmEascaderVisible = false;
  261. }
  262. },
  263. watch: {
  264. },
  265. }
  266. </script>
  267. <style>
  268. .media_item {
  269. float: left;
  270. width: 60px;
  271. font-size: 32px;
  272. }
  273. /*.el-select--mini {*/
  274. /*width: 100%;*/
  275. /*}*/
  276. .pblmEascader .el-dialog__body {
  277. height: 15vh;
  278. overflow: auto;
  279. }
  280. </style>