edit.vue 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. <template>
  2. <div>
  3. <el-button size="mini" type="text" @click="editBtn">编 辑</el-button>
  4. <el-drawer append-to-body title="编辑" :visible.sync="dialogFormVisible" size="800px">
  5. <div class="drawer__panel">
  6. <span style="font-weight:bold">基本信息</span>
  7. <el-divider></el-divider>
  8. <div style="padding:16px 0;display:flex;flex-direction:column">
  9. <el-form :model="form" :rules="rules" ref="form" label-width="120px"
  10. label-position="right" size="mini">
  11. <el-col :span="24">
  12. <el-form-item label="公海名称" prop="poolname">
  13. <el-input v-model="form.poolname" placeholder="请输入池名称"></el-input>
  14. </el-form-item>
  15. </el-col>
  16. <el-col :span="24">
  17. <el-form-item label="公海成员">
  18. <scopeOfauth :onlyread="true" :defaultData="defaultData" scrollHeight="200px"
  19. obiectName="sa_customerpool" appidname="sa_customerpoolid" :dataid="dataid" @onChecked="onChecked">
  20. </scopeOfauth>
  21. </el-form-item>
  22. </el-col>
  23. <span style="font-weight:bold">规则设置</span>
  24. <el-divider></el-divider>
  25. <el-col :span="24">
  26. <el-form-item label="分配领取规则" prop="freeget">
  27. <el-radio-group v-model="form.freeget">
  28. <el-radio :label="1">成员可见可领取,管理员可分配</el-radio>
  29. <el-radio :label="0">成员可见不可领取,管理员可分配</el-radio>
  30. </el-radio-group>
  31. </el-form-item>
  32. </el-col>
  33. <el-col :span="24">
  34. <el-form-item label="保有规则" prop="isopentenure">
  35. <el-radio-group v-model="form.isopentenure">
  36. <el-radio :label="1">开启</el-radio>
  37. <el-radio :label="0">关闭</el-radio>
  38. </el-radio-group>
  39. </el-form-item>
  40. </el-col>
  41. <el-col :span="24">
  42. <el-form-item label="自动回收规则" prop="datafollowlimit">
  43. <div>
  44. <el-radio-group v-model="form.isopenrecovery">
  45. <el-radio :label="1">开启</el-radio>
  46. <el-radio :label="0">关闭</el-radio>
  47. </el-radio-group>
  48. </div>
  49. <div v-show="form.isopenrecovery == 1">
  50. <div><el-input size="mini" style="width:50px;margin-right:10px" v-model="form.datafollowlimit" />天,未跟进,自动回收至公海,负责人清空</div>
  51. <div><el-input size="mini" style="width:50px;margin-right:10px" v-model="form.deallimit" />天,未成交,自动回收至公海,负责人清空</div>
  52. </div>
  53. </el-form-item>
  54. <el-form-item label="是否默认公海" prop="aa">
  55. <div>
  56. <el-radio-group v-model="form.aa" :disabled="form.isdefault === 1">
  57. <el-radio :label="1">开启</el-radio>
  58. <el-radio :label="0" >关闭</el-radio>
  59. </el-radio-group>
  60. </div>
  61. </el-form-item>
  62. <el-form-item label="是否启用" prop="isused">
  63. <div>
  64. <el-radio-group v-model="form.isused">
  65. <el-radio :label="1">开启</el-radio>
  66. <el-radio :label="0">关闭</el-radio>
  67. </el-radio-group>
  68. </div>
  69. </el-form-item>
  70. </el-col>
  71. </el-form>
  72. <el-alert
  73. type="warning">
  74. <div slot="title">
  75. <p>分享退回规则:</p>
  76. <p>成员领取后可分享客户至公海(可选公海),分享不清空负责人</p>
  77. <p>成员退回客户至公海(原路退回:若公海作废,则退回至默认公海),退回清空负责人</p>
  78. </div>
  79. </el-alert>
  80. </div>
  81. </div>
  82. <div class="fixed__btn__panel">
  83. <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
  84. <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
  85. </div>
  86. </el-drawer>
  87. </div>
  88. </template>
  89. <script>
  90. import scopeOfauth from '@/HDrpManagement/publicManage/components/scopeOfAuthority/index'
  91. export default {
  92. name: "add",
  93. props:['data'],
  94. components: { scopeOfauth },
  95. data () {
  96. return {
  97. dialogFormVisible: false,
  98. authData: '',
  99. defaultData: [],
  100. dataid: '',
  101. form: {
  102. "aa":0,
  103. "sa_customerpoolid": 0,
  104. "poolname": "", //池名称
  105. "freeget": 0, //自由领取
  106. "isused": 1, //是否启用
  107. "remarks": "",
  108. "isopentenure":0,
  109. "countlimit": 0, //成员最大保有客户数(0表示不设限)
  110. "isopenrecovery":0,
  111. "datafollowlimit": 0, //跟进天数限制(超过天数后自动退回,0表示不设限)
  112. "deallimit": 0, //成交天数限制(超过天数后自动退回,0表示不限制)
  113. "isdefault": 1 //是否默认
  114. },
  115. rules: {
  116. poolname: [
  117. { required: true, message: '请输入名称', trigger: 'blur' },
  118. ],
  119. freeget: [
  120. { required: true, message: '请选择领取规则', trigger: 'blur' }
  121. ],
  122. datafollowlimit: [
  123. { required: true, message: '请填写回收数据', trigger: 'blur' }
  124. ],
  125. deallimit: [
  126. { required: true, message: '请填写回收数据', trigger: 'blur' }
  127. ],
  128. isopentenure: [
  129. { required: true, message: '请输入数据', trigger: 'blur' }
  130. ],
  131. aa: [
  132. { required: true, message: '请选择', trigger: 'blur' }
  133. ],
  134. isused: [
  135. { required: true, message: '请选择', trigger: 'blur' }
  136. ],
  137. }
  138. }
  139. },
  140. provide () {
  141. return {
  142. rowData: () => ''
  143. }
  144. },
  145. created () {
  146. },
  147. methods: {
  148. editBtn () {
  149. this.dialogFormVisible = true
  150. this.form = Object.assign({},this.form,this.data)
  151. console.log(this.form);
  152. this.form.aa = this.form.isdefault
  153. this.getdefaultData()
  154. },
  155. async getdefaultData () {
  156. let res = await this.$api.requested({
  157. "id": 20221022135202,
  158. "content": {
  159. "sa_customerpoolid":this.data.sa_customerpoolid
  160. }
  161. })
  162. this.defaultData = res.data
  163. },
  164. // 获取保存授权范围数据
  165. onChecked (param) {
  166. this.authData = param
  167. console.log(this.authData);
  168. },
  169. onSubmit () {
  170. this.form.isdefault = this.form.aa
  171. this.$refs['form'].validate(async (valid) => {
  172. if (!valid) return false
  173. if (!this.authData) {
  174. this.$alert('还未授权范围,是否直接无视', '提示', {
  175. confirmButtonText: '确定',
  176. callback: async action => {
  177. if (action == 'confirm') {
  178. const res = await this.$api.requested({
  179. "id": "20221009100502",
  180. "version": 1,
  181. "content": this.form
  182. })
  183. if (this.authData) {
  184. this.authData.sa_customerpoolid = res.data.sa_customerpoolid
  185. const res2 = await this.$api.requested({
  186. "id": "20221022111502",
  187. "content": this.authData
  188. })
  189. }
  190. this.tool.showMessage(res, () => {
  191. this.$emit('onSuccess')
  192. this.$refs['form'].resetFields();
  193. this.dialogFormVisible = false
  194. })
  195. }
  196. }
  197. })
  198. } else {
  199. const res = await this.$api.requested({
  200. "id": "20221009100502",
  201. "version": 1,
  202. "content": this.form
  203. })
  204. if (this.authData) {
  205. this.authData.sa_customerpoolid = res.data.sa_customerpoolid
  206. const res2 = await this.$api.requested({
  207. "id": "20221022111502",
  208. "content": this.authData
  209. })
  210. }
  211. this.tool.showMessage(res, () => {
  212. this.$emit('onSuccess')
  213. this.$refs['form'].resetFields();
  214. this.activeName = '基本信息'
  215. this.dialogFormVisible = false
  216. })
  217. }
  218. })
  219. },
  220. }
  221. }
  222. </script>
  223. <style scoped>
  224. .tab p {
  225. flex: 1;
  226. height: 39px;
  227. line-height: 39px;
  228. text-align: center;
  229. font-weight: 500;
  230. font-size: 14px;
  231. color: #999;
  232. border-bottom: 2px solid #eeeeee;
  233. cursor: pointer;
  234. }
  235. .tab-act {
  236. color: #3874f6 !important;
  237. border-bottom: 2px solid #3874f6 !important;
  238. }
  239. /deep/.el-divider {
  240. margin: 15px 0;
  241. }
  242. </style>