01b269ce81b1e9a86c922ea3f8231ea2d1abe6d7.svn-base 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. <template>
  2. <div>
  3. <el-dialog :close-on-click-modal="false" title="选择稽察地点" :visible.sync="qrJcDdDialog" width="50%" :modal-append-to-body="true" :append-to-body="true" @close="closeXzGroupDdDialog">
  4. <div class="selection-container">
  5. <div class="select-box left">
  6. <div class="select-box-title">
  7. <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">请选择地点:</el-checkbox>
  8. </div>
  9. <div class="select-content">
  10. <el-checkbox-group v-model="checkedXzDdData" @change="val => handleCheckedXzDdDataChange(val)">
  11. <div v-for="city in XzDdData" :key="city" style="height: 40px;line-height: 40px;padding: 0 6%;">
  12. <el-checkbox :label="city">{{city}}</el-checkbox>
  13. </div>
  14. </el-checkbox-group>
  15. </div>
  16. </div>
  17. <div class="arrows-box">
  18. <div class="arrow-btns">
  19. <el-button type="primary" style="margin-bottom: 15px;" :disabled="!isIndeterminate" @click="addFz">添加>></el-button>
  20. <el-button type="primary" :disabled="!isIndeterminateFz" @click="removeFz"><<移除</el-button>
  21. </div>
  22. </div>
  23. <div class="select-box right">
  24. <div class="select-box-title">
  25. <el-checkbox :indeterminate="isIndeterminateFz" v-model="checkAllFz" @change="handleCheckAllChangeFz">稽察分组数:</el-checkbox>
  26. </div>
  27. <div class="select-content">
  28. <el-checkbox-group v-model="checkedXzDdDataFz" @change="handleCheckedXzDdDataChangeFz">
  29. <div v-for="(city,key) in JcFzsData" :key="key" style="height: 40px;line-height: 40px;padding: 0 6%;">
  30. <el-checkbox :label="city" :key="city">{{city}}</el-checkbox>
  31. </div>
  32. </el-checkbox-group>
  33. </div>
  34. </div>
  35. </div>
  36. <div slot="footer" class="dialog-footer" style="text-align: right;">
  37. <el-button type="primary" @click="savePersInfo" size="medium">保 存</el-button>
  38. </div>
  39. </el-dialog>
  40. </div>
  41. </template>
  42. <script>
  43. import { getAdData } from "../../api/duChaAPI.js";
  44. import request from '../../utils/gw_ajax_request'
  45. export default {
  46. name: "jiChaDiDian",
  47. props:["persAreaId", "multipleRowId"],
  48. data(){
  49. return{
  50. isHlZq: true,
  51. qrJcDdDialog: true,
  52. qdJcDdYzForm:{
  53. avoidYrSize: "",
  54. avoidSize: "",
  55. siBadPersNum: "",
  56. siGoodPersNum: "",
  57. siNvPersNum: "",
  58. siSaPersNum: "",
  59. isPorc: "",
  60. },
  61. isIndeterminate: false,
  62. isIndeterminateFz: false,
  63. checkAll: false,
  64. checkedXzDdData: [],
  65. checkAllFz: false,
  66. checkedXzDdDataFz: [],
  67. XzDdData: [],
  68. rootCode: localStorage.getItem('currentRlcode'),
  69. XuanZhongRemove:[],
  70. tongZuArray:[],
  71. jCResullt:[],
  72. JcFzsData:[],
  73. XuanZhongLeft:[],
  74. }
  75. },
  76. mounted(){
  77. this.$nextTick(() =>{
  78. this.getJcDdYzData();
  79. this.getAdDataList();
  80. })
  81. },
  82. methods:{
  83. getJcDdYzData(){
  84. this.JcFzsData = [];
  85. // if(this.persAreaId){
  86. request.get(`/tac/insp/year/batch/group/getGroupById/${this.multipleRowId}`).then(res =>{
  87. if(res.success){
  88. this.$nextTick(()=>{
  89. if(res.data.areaList){
  90. res.data.areaList.forEach(item =>{
  91. this.JcFzsData.push(item.adName);
  92. })
  93. }
  94. this.qdJcDdYzForm = res.data;
  95. if(this.qdJcDdYzForm.isPorc == '1'){
  96. this.isHlZq = false;
  97. }
  98. })
  99. }else{
  100. this.$message.warning(res.message);
  101. }
  102. })
  103. // }else{
  104. // this.$message.warning("请先确定人员及原则");
  105. // }
  106. },
  107. getAdDataList(){
  108. var _self = this;
  109. getAdData(_self.rootCode).then((res)=>{
  110. if(res.data){
  111. res.data.forEach((item,index) => {
  112. _self.XzDdData.push(item.adName);
  113. })
  114. }
  115. })
  116. },
  117. handleCheckAllChange(val) {
  118. this.checkedXzDdData = val ? this.XzDdData : [];
  119. this.isIndeterminate = val;
  120. this.$nextTick(() =>{
  121. this.jCResullt = this.checkedXzDdData;
  122. })
  123. },
  124. handleCheckAllChangeFz(val) {
  125. this.checkedXzDdDataFz = val ? this.JcFzsData : [];
  126. this.isIndeterminateFz = val;
  127. this.$nextTick(() =>{
  128. this.XuanZhongRemove = this.JcFzsData;
  129. })
  130. },
  131. handleCheckedXzDdDataChange(value) {
  132. let checkedCount = value.length;
  133. this.checkAll = checkedCount === this.XzDdData.length;
  134. this.isIndeterminate = checkedCount > 0 && checkedCount <= this.XzDdData.length;
  135. this.$nextTick(() =>{
  136. this.jCResullt = this.uniq(this.JcFzsData.concat(value));
  137. this.XuanZhongLeft = value;
  138. })
  139. },
  140. handleCheckedXzDdDataChangeFz(value) {
  141. let checkedCount = value.length;
  142. this.checkAllFz = checkedCount === this.XzDdData.length;
  143. this.isIndeterminateFz = checkedCount > 0 && checkedCount <= this.XzDdData.length;
  144. this.XuanZhongRemove = value;
  145. },
  146. //添加分组
  147. addFz(){
  148. this.JcFzsData = this.unique(this.JcFzsData,this.XuanZhongRemove);
  149. this.JcFzsData = this.uniq(this.jCResullt.concat(this.tongZuArray));
  150. },
  151. //移除
  152. removeFz(){
  153. this.$nextTick(()=>{
  154. this.JcFzsData = this.unique(this.JcFzsData,this.XuanZhongRemove);
  155. this.jCResullt = this.XuanZhongLeft;
  156. if(this.JcFzsData.length == "0"){
  157. this.tongZuArray = [];
  158. this.JcFzsData = [];
  159. }
  160. })
  161. },
  162. unique (obj, ary){
  163. return obj.filter(function(item){
  164. return ary.indexOf(item) == -1;
  165. })
  166. },
  167. //去重
  168. uniq (array){
  169. let temp = [];
  170. for(var i = 0; i < array.length; i++){
  171. if(temp.indexOf(array[i]) === -1){
  172. temp.push(array[i]);
  173. }
  174. }
  175. return temp;
  176. },
  177. //是否合理周期
  178. isPorcClick(val){
  179. if(val == '1'){
  180. this.isHlZq = false;
  181. }else{
  182. this.isHlZq = true;
  183. }
  184. },
  185. // 保存
  186. savePersInfo(){
  187. if(this.JcFzsData.length && this.JcFzsData){
  188. let array = [];
  189. this.JcFzsData.forEach(item => {
  190. var obj = {};
  191. this.$set(obj,'adName',item);
  192. array.push(obj);
  193. });
  194. this.qdJcDdYzForm["adNames"] = array;
  195. request.post(`/tac/insp/year/batch/group/updateGroupArea`,this.qdJcDdYzForm).then(res =>{
  196. if(res.success){
  197. this.$message.success("保存成功");
  198. this.$emit('closeXzGroupDdDialog');
  199. }
  200. })
  201. }else{
  202. this.$message.warning("稽察分组不能为空")
  203. }
  204. },
  205. closeXzGroupDdDialog(){
  206. this.$emit('closeXzGroupDdDialog');
  207. }
  208. }
  209. }
  210. </script>
  211. <style>
  212. </style>