4af3aa3905fa680970df2e0d50f2f7c0bebdb505.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. <template>
  2. <div>
  3. <!-- <el-dialog :title="'责任人填报'" :visible.sync="dialogFormVisible"> -->
  4. <el-container style="height:520px;">
  5. <el-header style="text-align: right; font-size: 12px;height:40px;">
  6. <el-button type="primary" @click="addHandler">添加走访人员</el-button>
  7. </el-header>
  8. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  9. <el-table :data="tableData" style="width: 100%">
  10. <el-table-column prop="viewPreName" label="走访人姓名" min-width="100" align="center">
  11. </el-table-column>
  12. <el-table-column prop="knowResManager" label="是否知晓水库管护员" min-width="90" align="center">
  13. <template slot-scope="scope">
  14. <span style="font-weight:bolder;color:#67C23A" v-if="scope.row.knowResManager == 1" >是</span>
  15. <span style="font-weight:bolder;color:#F56C6C" v-if="scope.row.knowResManager == 2" >否</span>
  16. </template>
  17. </el-table-column>
  18. <el-table-column prop="managerComment" label="对管护责任人评价" min-width="90" align="center">
  19. <template slot-scope="scope">
  20. <span style="font-weight:bolder;color:#F56C6C" v-if="scope.row.managerComment == 3" >不满意</span>
  21. <span style="font-weight:bolder;color:#E6A23C" v-if="scope.row.managerComment == 2" >一般</span>
  22. <span style="font-weight:bolder;color:#67C23A" v-if="scope.row.managerComment == 1" >满意</span>
  23. </template>
  24. </el-table-column>
  25. <el-table-column prop="inspTm" label="走访日期" min-width="100" align="center"></el-table-column>
  26. <el-table-column prop="note" label="备注" :show-overflow-tooltip="true" min-width="170"></el-table-column>
  27. <el-table-column align="center" show-overflow-tooltip label="操作" min-width="160" fixed="right">
  28. <template slot-scope="scope">
  29. <el-button type="success" plain @click="manageItem(scope.row)">编辑</el-button>
  30. <el-button type="danger" plain @click="deleteItem(scope.row)">删除</el-button>
  31. </template>
  32. </el-table-column>
  33. </el-table>
  34. </el-main>
  35. </el-container>
  36. <!-- <span slot="footer" class="dialog-footer" style="justify-content: flex-end;display: flex;">
  37. <el-button type="primary" @click="makesure">保 存</el-button>
  38. </span> -->
  39. <el-dialog :title="'走访情况填报'" :visible.sync="dialogFormVisible" :modal="false">
  40. <el-container style="height:520px;">
  41. <!-- <el-aside width="200px" style="border:1px solid #d5d5ff;overflow-y:hidden;">
  42. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">
  43. <i class="el-icon-share"></i>选择行政村
  44. </p>
  45. <provTreeList
  46. :rootCode="fengongxianCode"
  47. style="max-height:100%;"
  48. @provTreeSelectChange="provTreeSelectChangeHandler"
  49. ></provTreeList>
  50. </el-aside> -->
  51. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  52. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">信息填报</p>
  53. <el-form :model="formObj" :rules="rules" ref="formObj" label-width="160px" status-icon>
  54. <p style="margin-top:10px;margin-bottom: 10px"><i class="el-icon-caret-right"></i><span style="width:120px;padding-left: 10px">走访人员基本信息</span><span class="hrs"></span></p>
  55. <el-form-item label="走访人员名称" prop="viewPreName">
  56. <!-- <el-input v-model="formObj.adNm" autocomplete="off" style="width:70%;"></el-input> -->
  57. <el-input v-model="formObj.viewPreName" style="width:70%;"></el-input>
  58. </el-form-item>
  59. <p style="margin-top:10px;margin-bottom: 10px"><i class="el-icon-caret-right"></i><span style="width:120px;padding-left: 10px">走访人员调研信息</span><span class="hrs"></span></p>
  60. <el-form-item label="是否知晓水库管护人员" prop="knowResManager">
  61. <el-radio v-model="formObj.knowResManager" label="1">是</el-radio>
  62. <el-radio v-model="formObj.knowResManager" label="2">否</el-radio>
  63. </el-form-item>
  64. <el-form-item label="对管护责任人的评价" prop="managerComment" v-if="formObj.knowResManager == '1'">
  65. <el-radio v-model="formObj.managerComment" label="1">满意</el-radio>
  66. <el-radio v-model="formObj.managerComment" label="2">一般</el-radio>
  67. <el-radio v-model="formObj.managerComment" label="3">不满意</el-radio>
  68. </el-form-item>
  69. <el-form-item label="走访日期" prop="inspTm">
  70. <el-date-picker
  71. v-model="formObj.inspTm"
  72. type="date"
  73. value-format="yyyy-MM-dd"
  74. placeholder="选择日期">
  75. </el-date-picker>
  76. </el-form-item>
  77. <el-form-item label="备注" prop="note">
  78. <el-input v-model="formObj.note" type="textarea" :rows="2"></el-input>
  79. </el-form-item>
  80. <el-form-item label="操作">
  81. <el-button @click="dialogFormVisible = false">取 消</el-button>
  82. <el-button type="primary" @click="addSkZouFangSubmit('formObj')">确 定</el-button>
  83. </el-form-item>
  84. </el-form>
  85. </el-main>
  86. </el-container>
  87. </el-dialog>
  88. <!-- </el-dialog> -->
  89. </div>
  90. </template>
  91. <script>
  92. import request from "@util/gw_ajax_request.js"
  93. import {
  94. getskZouFangByrgstrId,
  95. getSkZouFangViewId,
  96. addZouFangRenYuanList_sk,
  97. updateZouFangRenYuanList_sk,
  98. getZouFangrenYuanListByViewId
  99. } from "@api/duChaTianBao.js"
  100. import {
  101. formatDateTimeD
  102. } from "@util/gw_date.js"
  103. export default {
  104. components: {
  105. },
  106. props: ['currentObjectRgstrId'],
  107. data() {
  108. var checkInput = (rule, value, callback) => {
  109. if (!value) {
  110. callback(new Error('请输入走访人员名称'));
  111. } else {
  112. callback();
  113. }
  114. };
  115. return {
  116. tableData: [],
  117. dialogFormVisible: false,
  118. viewId: '',
  119. formObj: {
  120. 'viewPreName': '',
  121. 'knowResManager': '',
  122. 'managerComment': '',
  123. 'note': '',
  124. 'inspTm': '',
  125. 'viewId': ''
  126. },
  127. rules: {
  128. viewPreName: [{
  129. required: true,
  130. validator: checkInput,
  131. trigger: 'change'
  132. },
  133. ],
  134. }
  135. }
  136. },
  137. computed: {
  138. recPersId() {
  139. return localStorage.getItem("userid") ? localStorage.getItem("userid") : ''
  140. }
  141. },
  142. mounted() {
  143. this.getZouFangCun();
  144. },
  145. watch: {
  146. currentObjectRgstrId(n, o) {
  147. this.getZouFangCun();
  148. },
  149. dialogFormVisible(val){
  150. if(!val){
  151. this.getRenYuanListData()
  152. }
  153. }
  154. },
  155. methods: {
  156. cancelHandler() {
  157. this.$emit('cancelHandler');
  158. },
  159. makesure() {
  160. this.$emit('cancelHandler');
  161. this.$emit('addShuiKuSuccess');
  162. },
  163. addHandler: function () {
  164. this.formObj= {
  165. 'viewPreName': '',
  166. 'knowResManager': '',
  167. 'managerComment': '',
  168. 'note': '',
  169. 'viewId': '',
  170. }
  171. this.dialogFormVisible = true;
  172. },
  173. addZouFang: function () {
  174. this.dialogFormVisible = false;
  175. },
  176. getZouFangCun: function () {
  177. getskZouFangByrgstrId(this.currentObjectRgstrId).then(
  178. (res) => {
  179. if (res.data && res.success) {
  180. if(res.data.hasOwnProperty('viewId')){
  181. this.viewId = res.data.viewId;
  182. this.getRenYuanListData();
  183. }else{
  184. this.getSkZouFangViewId();
  185. }
  186. } else {
  187. // console.log('未创建走访表,创建走访表');
  188. this.getSkZouFangViewId();
  189. }
  190. },
  191. (err) => {}
  192. );
  193. },
  194. getRenYuanListData: function () {
  195. let _self = this;
  196. getZouFangrenYuanListByViewId(this.viewId).then(
  197. (res) => {
  198. // console.log(res);
  199. _self.tableData = res.data.list;
  200. _self.tableData.forEach((ele)=>{
  201. if(ele.knowResManager == '2'){
  202. ele.managerComment = ''
  203. }
  204. })
  205. if(_self.tableData.length==0){
  206. request.post("/dc/insp/rsvrRgstr/update",{
  207. 'viewStat':0,
  208. 'rgstrId':_self.currentObjectRgstrId
  209. })
  210. .then(res => {
  211. });
  212. }
  213. },
  214. (err) => {
  215. }
  216. );
  217. },
  218. getSkZouFangViewId: function () {
  219. getSkZouFangViewId(this.recPersId, this.currentObjectRgstrId).then(
  220. (res) => {
  221. console.log(res);
  222. if (res.data && res.success) {
  223. this.viewId = res.data.viewId;
  224. this.getRenYuanListData();
  225. } else {
  226. }
  227. },
  228. (err) => {},
  229. );
  230. },
  231. addSkZouFangSubmit(formObj) {
  232. let _self =this;
  233. this.$refs[formObj].validate((valid) => {
  234. if (valid) {
  235. let updateArray = this.tableData;
  236. this.formObj['viewId'] = this.viewId;
  237. updateArray.push(this.formObj);
  238. updateZouFangRenYuanList_sk(updateArray, this.viewId, this.currentObjectRgstrId).then(
  239. (res) => {
  240. console.log(res);
  241. request
  242. .post("/dc/rever/project", _self.addObj)
  243. .then(res => {
  244. if (res.success) {
  245. _self.$message.success("修改成功");
  246. request
  247. .post("/dc/insp/rsvrRgstr/update",{
  248. 'viewStat':2,
  249. 'rgstrId':_self.currentObjectRgstrId
  250. })
  251. .then(res => {
  252. _self.getRenYuanListData();
  253. _self.$emit("addShuiKuSuccess");
  254. });
  255. }
  256. });
  257. this.dialogFormVisible = false;
  258. }
  259. );
  260. } else {
  261. console.log('error submit!!');
  262. return false;
  263. }
  264. });
  265. },
  266. // addSkZouFangSubmit:function(){
  267. // let updateArray = this.tableData;
  268. // this.formObj['viewId'] = this.viewId;
  269. // updateArray.push(this.formObj);
  270. // updateZouFangRenYuanList_sk(updateArray,this.viewId,this.currentObjectRgstrId).then(
  271. // (res) =>{
  272. // console.log(res);
  273. // this.getRenYuanListData();
  274. // this.dialogFormVisible = false;
  275. // }
  276. // );
  277. // },
  278. manageItem: function (row) {
  279. let updateArray = [];
  280. this.tableData.forEach((element, index) => {
  281. if (element.viewPreName != row.viewPreName) {
  282. updateArray.push(element);
  283. }
  284. });
  285. this.formObj = row;
  286. this.dialogFormVisible = true;
  287. this.tableData = updateArray
  288. },
  289. deleteItem: function (row) {
  290. let updateArray = [];
  291. this.tableData.forEach((element, index) => {
  292. if (element.viewPreId != row.viewPreId) {
  293. updateArray.push(element);
  294. }
  295. });
  296. updateZouFangRenYuanList_sk(updateArray, this.viewId, this.currentObjectRgstrId).then(
  297. (res) => {
  298. console.log(res);
  299. this.getRenYuanListData();
  300. }
  301. );
  302. },
  303. },
  304. }
  305. </script>
  306. <style>
  307. #dcdxHeader {
  308. padding: 15px 20px;
  309. }
  310. #dxdcFooter {
  311. text-align: center;
  312. }
  313. #dxdcAside {
  314. border: 1px solid #d5d5ff;
  315. }
  316. .el-dialog__wrapper .el-treeWhite {
  317. /* max-height: 260px !important; */
  318. }
  319. </style>