您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

939 行
32 KiB

  1. <template>
  2. <div class="box-center">
  3. <!-- 头 -->
  4. <div class="app-top">
  5. <div class="app-titel" style="margin-top: 5px">
  6. <!-- <div v-if="orgType==0" class="label">代理商名称:</div>
  7. <div v-if="orgType==0">
  8. <el-input v-model="operatorName"></el-input>
  9. </div> -->
  10. <div class="label">公司名称:</div>
  11. <div>
  12. <el-input v-model="name"></el-input>
  13. </div>
  14. <div v-if="orgType==0" class="label">运营人员名称:</div>
  15. <div v-if="orgType==0">
  16. <el-input v-model="operationStaffName"></el-input>
  17. </div>
  18. </div>
  19. <div class="app-titel" style="margin-top: 15px">
  20. <div class="label" style="color: #ffffff">筛选相关:</div>
  21. <div>
  22. <el-button v-if="cus_crd_add" @click="infoadd()" style="background: #2671e2; color: #ffffff"
  23. >新增</el-button
  24. >
  25. </div>
  26. <div style="margin-left: 20px">
  27. <el-button @click="Screening()" style="background: #2671e2; color: #ffffff"
  28. >筛选</el-button
  29. >
  30. </div>
  31. <div style="margin-left: 20px">
  32. <el-button @click="Screeningofempty()">清空筛选条件</el-button>
  33. </div>
  34. </div>
  35. </div>
  36. <!-- 表格 -->
  37. <div class="cen-tab">
  38. <el-table
  39. :data="tableData"
  40. stripe
  41. height="400"
  42. style="width: 100%">
  43. <el-table-column
  44. prop="name"
  45. label="公司名称"
  46. align="center"
  47. >
  48. </el-table-column>
  49. <!-- <el-table-column
  50. v-if="orgType==0"
  51. prop="operatorName"
  52. label="代理商"
  53. align="center"
  54. >
  55. </el-table-column> -->
  56. <el-table-column
  57. v-if="orgType==0"
  58. prop="operationStaffName"
  59. label="运营人员"
  60. align="center"
  61. >
  62. </el-table-column>
  63. <el-table-column
  64. prop="address"
  65. label="公司地址"
  66. align="center"
  67. >
  68. </el-table-column>
  69. <el-table-column
  70. label="联系人信息"
  71. align="center">
  72. <template slot-scope="scope">
  73. <p>{{scope.row.contactPerson}}:{{scope.row.contactNumber}}</p>
  74. </template>
  75. </el-table-column>
  76. <el-table-column
  77. prop="managerPhone"
  78. label="管理员账号"
  79. align="center"
  80. >
  81. </el-table-column>
  82. <el-table-column
  83. prop="houseNum"
  84. label="服务期楼盘"
  85. align="center"
  86. >
  87. </el-table-column>
  88. <el-table-column prop="lockFlag" label="状态" align="center">
  89. <template slot-scope="{ row }">
  90. {{row.lockFlag==1?'禁用':'启用'}}
  91. </template>
  92. </el-table-column>
  93. <el-table-column label="操作" align="center" fixed="right" width="200">
  94. <template slot-scope="scope">
  95. <el-button type="text" v-if="cus_crd_edit" size="small" @click="infoeditor(scope.row)">编辑</el-button>
  96. <el-button type="text" v-if="cus_crd_change" size="small" @click="inforeplace(scope.row)">更换账号</el-button>
  97. <el-button type="text" v-if="cus_crd_del" size="small" @click="toinifodelete(scope)">删除</el-button>
  98. <!-- <el-button type="text" size="small" @click="editOpera(scope.row,0)">管理系统运营</el-button>
  99. <el-button type="text" size="small" @click="editOpera(scope.row,1)">管理代理商运营</el-button> -->
  100. <el-button type="text" size="small" v-if="cus_com_sys" @click="editOpera(scope.row,0)">系统运营</el-button>
  101. <el-button type="text" v-if="cus_crd_bindAgent" size="small" @click="bindAgent(scope.row)">绑定代理商</el-button>
  102. <el-button type="text" v-if="cus_crd_open" size="small" @click="toDisable(scope.row)">{{scope.row.lockFlag==0?'禁用':'启用'}}</el-button>
  103. </template>
  104. </el-table-column>
  105. </el-table>
  106. <div style="display: flex;justify-content:flex-end;margin-top: 10px;">
  107. <el-pagination
  108. @size-change="handleSizeChange"
  109. @current-change="handleCurrentChange"
  110. :current-page="currentPage4"
  111. :page-sizes="[7, 14, 21, 28]"
  112. :page-size="7"
  113. layout="total, sizes, prev, pager, next, jumper"
  114. :total="total">
  115. </el-pagination>
  116. </div>
  117. </div>
  118. <el-dialog title="新增公司" :visible.sync="dialogVisible" >
  119. <el-form :model="addagentobj" label-position="labelPosition" :rules="rules" ref="addagentobj" label-width="140px" style="width:60%; margin: 0 auto;">
  120. <!-- <el-form-item label="代理商名称:" prop="agentId"> -->
  121. <!-- <el-select v-model="addagentobj.agentId" placeholder="请选择" @change='clickagentId()'> -->
  122. <!-- <el-select v-model="addagentobj.agentId" placeholder="请选择">
  123. <el-option v-for="item in optionsagentId" :key="item.value" :label="item.agentName" :value="item.id" ></el-option>
  124. </el-select> -->
  125. <!-- </el-form-item> -->
  126. <el-form-item label="公司名称:" prop="name">
  127. <el-input v-model="addagentobj.name"></el-input>
  128. </el-form-item>
  129. <el-form-item label="联系人:" prop="contactPerson">
  130. <el-input v-model="addagentobj.contactPerson"></el-input>
  131. </el-form-item>
  132. <el-form-item label="联系手机:" prop="contactNumber">
  133. <el-input v-model="addagentobj.contactNumber"></el-input>
  134. </el-form-item>
  135. <el-form-item label="省:" prop="provinceId">
  136. <el-select v-model="addagentobj.provinceId" placeholder="请选择" @change='clickprovinceId()'>
  137. <el-option v-for="item in optionsparentId" :key="item.value" :label="item.name" :value="item.id" > </el-option>
  138. </el-select>
  139. </el-form-item>
  140. <el-form-item label="市:" prop="cityId">
  141. <el-select v-model="addagentobj.cityId" placeholder="请选择">
  142. <el-option
  143. v-for="item in optionscityId"
  144. :key="item.value"
  145. :label="item.name"
  146. :value="item.id"
  147. >
  148. </el-option>
  149. </el-select>
  150. </el-form-item>
  151. <el-form-item label="详细地址:" prop="address">
  152. <el-input v-model="addagentobj.address"></el-input>
  153. </el-form-item>
  154. <!-- <el-form-item label="运营人员:" prop="operationStaff">
  155. <el-select v-model="addagentobj.operationStaff" placeholder="请选择">
  156. <el-option
  157. v-for="item in optionsoperationStaff"
  158. :key="item.value"
  159. :label="item.name"
  160. :value="item.accountId"
  161. >
  162. </el-option>
  163. </el-select>
  164. </el-form-item> -->
  165. <el-form-item label="管理员账号:" prop="managerPhone">
  166. <el-input maxlength="11" v-model="addagentobj.managerPhone"></el-input>
  167. </el-form-item>
  168. <el-form-item label="密码:" prop="managerPassword">
  169. <el-input show-password :disabled='passFlag' v-model="addagentobj.managerPassword"></el-input>
  170. </el-form-item>
  171. </el-form>
  172. <div slot="footer" class="dialog-footer">
  173. <el-button @click="dialogVisible = false">取 消</el-button>
  174. <el-button type="primary" @click="add()">保存</el-button>
  175. </div>
  176. </el-dialog>
  177. <el-dialog title="编辑" :visible.sync="dialogVisible2" >
  178. <el-form :model="editoragentobj" label-position="labelPosition" :rules="editorrules" ref="editoragentobj" label-width="140px" style="width:60%; margin: 0 auto;">
  179. <!-- <el-form-item label="代理商名称:" prop="operator"> -->
  180. <!-- <el-select v-model="editoragentobj.operator" placeholder="请选择" @change='clickagentId22()'> -->
  181. <!-- <el-select v-model="editoragentobj.operator" placeholder="请选择">
  182. <el-option v-for="item in optionsagentId" :key="item.value" :label="item.agentName" :value="item.id" ></el-option>
  183. </el-select> -->
  184. <!-- </el-form-item> -->
  185. <el-form-item label="公司名称:" prop="name">
  186. <el-input v-model="editoragentobj.name"></el-input>
  187. </el-form-item>
  188. <el-form-item label="联系人:" prop="contactPerson">
  189. <el-input v-model="editoragentobj.contactPerson"></el-input>
  190. </el-form-item>
  191. <el-form-item label="联系手机:" prop="contactNumber">
  192. <el-input v-model="editoragentobj.contactNumber"></el-input>
  193. </el-form-item>
  194. <el-form-item label="省:" prop="provinceId">
  195. <el-select v-model="editoragentobj.provinceId" placeholder="请选择" @change='clickprovinceId3()'>
  196. <el-option v-for="item in optionsparentId" :key="item.value" :label="item.name" :value="item.id" > </el-option>
  197. </el-select>
  198. </el-form-item>
  199. <el-form-item label="市:" prop="cityId">
  200. <el-select v-model="editoragentobj.cityId" placeholder="请选择">
  201. <el-option
  202. v-for="item in optionscityId"
  203. :key="item.value"
  204. :label="item.name"
  205. :value="item.id"
  206. >
  207. </el-option>
  208. </el-select>
  209. </el-form-item>
  210. <el-form-item label="详细地址:" prop="address">
  211. <el-input v-model="editoragentobj.address"></el-input>
  212. </el-form-item>
  213. <!-- <el-form-item label="运营人员:" prop="operationStaff">
  214. <el-select v-model="editoragentobj.operationStaff" placeholder="请选择">
  215. <el-option
  216. v-for="item in optionsoperationStaff"
  217. :key="item.value"
  218. :label="item.name"
  219. :value="item.accountId"
  220. >
  221. </el-option>
  222. </el-select>
  223. </el-form-item> -->
  224. </el-form>
  225. <div slot="footer" class="dialog-footer">
  226. <el-button @click="dialogVisible2 = false">取 消</el-button>
  227. <el-button type="primary" @click="editor()">保存</el-button>
  228. </div>
  229. </el-dialog>
  230. <el-dialog title="更换账号" :visible.sync="dialogVisible3" >
  231. <el-form :model="replaceagentobj" label-position="labelPosition" :rules="ruleser" ref="replaceagentobj" label-width="140px" style="width:60%; margin: 0 auto;">
  232. <el-form-item label="管理员账号:" prop="managerPhone">
  233. <el-input maxlength="11" v-model="replaceagentobj.managerPhone"></el-input>
  234. </el-form-item>
  235. <el-form-item label="密码:" prop="managerPassword">
  236. <el-input show-password :disabled='passFlag' v-model="replaceagentobj.managerPassword"></el-input>
  237. </el-form-item>
  238. </el-form>
  239. <div slot="footer" class="dialog-footer">
  240. <el-button @click="dialogVisible3 = false">取 消</el-button>
  241. <el-button type="primary" @click="replace()">保存</el-button>
  242. </div>
  243. </el-dialog>
  244. <el-dialog :title="sysFlag==0?'绑定系统运营':'绑定代理商运营'" :visible.sync="operaVisible" >
  245. <el-form :model="operaForm" label-position="labelPosition" :rules="operaRules" ref="operaForm" label-width="140px">
  246. <el-form-item label="运营人员:" prop="operationalPeople">
  247. <el-select v-model="operaForm.operationalPeople" style="width:80%" multiple placeholder="请选择">
  248. <el-option
  249. v-for="item in optionsoperationStaff"
  250. :key="item.value"
  251. :label="item.name"
  252. :value="item.accountId"
  253. >
  254. </el-option>
  255. </el-select>
  256. </el-form-item>
  257. </el-form>
  258. <div slot="footer" class="dialog-footer">
  259. <el-button @click="operaVisible = false">取 消</el-button>
  260. <el-button type="primary" @click="saveOpera()">保存</el-button>
  261. </div>
  262. </el-dialog>
  263. <el-dialog title="管理代理商" :visible.sync="agentVisible" >
  264. <el-form :model="agentForm" label-position="labelPosition" :rules="agentRule" ref="agentForm" label-width="140px">
  265. <el-form-item label="代理商:" prop="agentId">
  266. <el-select v-model="agentForm.agentId" style="width:80%" multiple filterable placeholder="请选择">
  267. <el-option
  268. v-for="item in optionsagentId"
  269. :key="item.id"
  270. :label="item.agentName"
  271. :value="item.id"
  272. >
  273. </el-option>
  274. </el-select>
  275. </el-form-item>
  276. </el-form>
  277. <div slot="footer" class="dialog-footer">
  278. <el-button @click="agentVisible = false">取 消</el-button>
  279. <el-button type="primary" @click="saveAgent()">保存</el-button>
  280. </div>
  281. </el-dialog>
  282. </div>
  283. </template>
  284. <script>
  285. import { mapGetters } from "vuex";
  286. export default {
  287. data() {
  288. var validatePass = (rule, value, callback) => {
  289. if (value === "") {
  290. callback(new Error("请输入管理员账号"));
  291. } else {
  292. if (value) {
  293. if (!/^1[3456789]\d{9}$/.test(value)) {
  294. // alert("手机号码不合法,请重新输入");
  295. callback(new Error("手机号格式错误,请重新输入"));
  296. }else{
  297. // 验证电话号码
  298. this.$api.api.verPhone(value).then((res) => {
  299. // console.log(res);
  300. // 判断数据是否已经有了
  301. if (res.data) {
  302. // 由用户
  303. this.$api.api.userVerify({
  304. orgType:localStorage.getItem('orgType'),
  305. accountId:res.data.sysUser.accountId,
  306. username:res.data.sysUser.username,
  307. agentId:localStorage.getItem('agentId'),
  308. orgCode:localStorage.getItem('orgCode'),
  309. })
  310. .then(res1=>{
  311. callback();
  312. this.passFlag=true
  313. if(this.dialogVisible3){
  314. this.replaceagentobj.managerPassword=res.data.sysUser.resultPwd
  315. }else{
  316. this.addagentobj.managerPassword=res.data.sysUser.resultPwd
  317. }
  318. })
  319. .catch(err=>{
  320. console.log(err)
  321. callback(new Error(err));
  322. })
  323. } else {
  324. // 没有用户
  325. // console.log("没有用户");
  326. // callback(new Error("没有管理员账号"));
  327. if(this.dialogVisible3){
  328. this.replaceagentobj.managerPassword=''
  329. }else{
  330. this.addagentobj.managerPassword=''
  331. }
  332. this.passFlag=false
  333. callback();
  334. }
  335. });
  336. }
  337. }
  338. callback();
  339. }
  340. };
  341. return {
  342. addagentobj:{
  343. agentId:'',// 代理商名称
  344. name:'',// 公司名称
  345. contactPerson:'',// 联系人
  346. contactNumber:'',// 联系人手机号
  347. provinceId:'',// 省id
  348. cityId:'',// 市id
  349. address:'',// 详细地址
  350. operationStaff:'',// 运营人员id
  351. managerPhone:'',// 管理员账号
  352. managerPassword:'',// 管理员账号密码
  353. },
  354. rules:{
  355. // agentId: [
  356. // { required: true, message: '请选择代理商', trigger: 'blur' },
  357. // ],
  358. name: [
  359. { required: true, message: '请输入公司名称', trigger: 'blur' },
  360. ],
  361. contactPerson: [
  362. { required: true, message: '请输入联系人名称', trigger: 'blur' },
  363. ],
  364. contactNumber: [
  365. { required: true, message: '请输入联系人手机号', trigger: 'blur' },
  366. { min: 11, max: 11, message: '请输入手机号', trigger: 'blur' }
  367. ],
  368. provinceId: [
  369. { required: true, message: '请输入选择省', trigger: 'blur' },
  370. ],
  371. cityId: [
  372. { required: true, message: '请输入选择市', trigger: 'blur' },
  373. ],
  374. address: [
  375. { required: true, message: '请输入详细地址', trigger: 'blur' },
  376. ],
  377. // operationStaff: [
  378. // { required: true, message: '请选择运营人员', trigger: 'blur' },
  379. // ],
  380. managerPhone: [
  381. { validator: validatePass, trigger: "blur" },
  382. ],
  383. managerPassword: [
  384. { required: true, message: '请输入管理员账号密码', trigger: 'blur' },
  385. ],
  386. },
  387. optionsparentId:[],//省份列表
  388. optionscityId:[],//市列表
  389. optionsagentId:[],//代理商列表
  390. optionsoperationStaff:[],//运营人员列表
  391. currentPage4:1,
  392. tableData: [],
  393. dialogVisible:false,
  394. dialogVisible2:false,
  395. dialogVisible3:false,
  396. operaVisible:false,
  397. agentVisible:false,
  398. passFlag:false,
  399. currentPage4:1,
  400. operatorName:'',//代理商名称
  401. operationStaffName:'',//运营人员名称
  402. name:'',//公司名称
  403. total:0,//总条数
  404. pageNum:1,
  405. pageSize:7,
  406. orgType:'',
  407. sysFlag:'0',
  408. replaceagentobj:{
  409. id:'',
  410. managerPhone:'',
  411. managerPassword:''
  412. },
  413. ruleser:{
  414. managerPhone: [
  415. // { required: true, message: '请输入管理员账号', trigger: 'blur' },
  416. { validator: validatePass, trigger: "blur" },
  417. ],
  418. managerPassword: [
  419. { required: true, message: '请输入管理员账号密码', trigger: 'blur' },
  420. ],
  421. },
  422. editoragentobj:{
  423. id:'',
  424. operator:'',// 代理商名称
  425. name:'',// 公司名称
  426. contactPerson:'',// 联系人
  427. contactNumber:'',// 联系人手机号
  428. provinceId:'',// 省id
  429. cityId:'',// 市id
  430. address:'',// 详细地址
  431. // operationStaff:'',// 运营人员id
  432. },
  433. idx:'0',
  434. operaForm:{
  435. operationalPeople:''
  436. },
  437. agentForm:{
  438. agentId:[],
  439. },
  440. operaRules:{
  441. operationalPeople: [
  442. { required: true, message: '请选择运营人员', trigger: 'blur' },
  443. ],
  444. },
  445. agentRule:{
  446. agentId: [
  447. { required: true, message: '请选择代理商', trigger: 'blur' },
  448. ],
  449. },
  450. editorrules:{
  451. // operator: [
  452. // { required: true, message: '请选择代理商', trigger: 'blur' },
  453. // ],
  454. name: [
  455. { required: true, message: '请输入公司名称', trigger: 'blur' },
  456. ],
  457. contactPerson: [
  458. { required: true, message: '请输入联系人名称', trigger: 'blur' },
  459. ],
  460. contactNumber: [
  461. { required: true, message: '请输入联系人手机号', trigger: 'blur' },
  462. { min: 11, max: 11, message: '请输入手机号', trigger: 'blur' }
  463. ],
  464. provinceId: [
  465. { required: true, message: '请输入选择省', trigger: 'blur' },
  466. ],
  467. cityId: [
  468. { required: true, message: '请输入选择市', trigger: 'blur' },
  469. ],
  470. address: [
  471. { required: true, message: '请输入详细地址', trigger: 'blur' },
  472. ],
  473. // operationStaff: [
  474. // { required: true, message: '请选择运营人员', trigger: 'blur' },
  475. // ],
  476. }
  477. };
  478. },
  479. computed: {
  480. ...mapGetters(["permissions"]),
  481. },
  482. created() {
  483. this.cus_crd_add = this.permissions["cus_crd_add"];
  484. this.cus_crd_edit = this.permissions["cus_crd_edit"];
  485. this.cus_crd_change = this.permissions["cus_crd_change"];
  486. this.cus_crd_del = this.permissions["cus_crd_del"];
  487. this.cus_crd_bindAgent = this.permissions["cus_crd_bindAgent"];
  488. this.cus_crd_open = this.permissions["cus_crd_open"];
  489. this.cus_com_sys = this.permissions["cus_com_sys"];
  490. this.cus_com_sys1 = this.permissions["cus_com_sys1"];
  491. },
  492. mounted() {
  493. this.orgType=localStorage.getItem('orgType')
  494. this.getcompanyList()
  495. },
  496. methods: {
  497. bindAgent(row){
  498. // console.log(row);
  499. this.agentForm.orgCode=row.orgCode
  500. this.agentForm.agentId=[]
  501. this.findMyAgent()
  502. this.agentVisible=true
  503. },
  504. saveAgent(){
  505. this.$refs.agentForm.validate(valid=>{
  506. if(valid){
  507. console.log(this.agentForm);
  508. this.$api.api.bindAgent({
  509. agentIds:this.agentForm.agentId.join(','),
  510. orgCode:this.agentForm.orgCode
  511. })
  512. .then(res=>{
  513. this.$message.success('操作成功')
  514. this.agentVisible=false
  515. this.Screeningofempty()
  516. })
  517. }
  518. })
  519. },
  520. saveOpera(){
  521. this.$refs.operaForm.validate(valid=>{
  522. if(valid){
  523. // console.log(valid,this.operaForm);
  524. this.$api.api.zkoperationrecordSaveCompany({
  525. orgType:2,
  526. accountIds:this.operaForm.operationalPeople.join(','),
  527. orgId: this.operaForm.orgId,
  528. operationType:this.idx==0?'1':'2'
  529. })
  530. .then(res=>{
  531. console.log(res);
  532. this.$message.success('操作成功')
  533. this.operaVisible=false
  534. this.Screeningofempty()
  535. })
  536. }
  537. })
  538. },
  539. editOpera(row,idx){
  540. console.log(row,idx);
  541. // 获取运营人员列表
  542. this.operaForm.orgId=row.orgCode
  543. this.sysFlag=idx
  544. // 获取所有代理商运营
  545. this.getAllOperationsStaff(idx)
  546. this.idx=idx
  547. this.zkoperationrecordFindByOrg(row.orgCode,idx)
  548. // this.operaVisible=true
  549. },
  550. zkoperationrecordFindByOrg(orgId,idx){
  551. // console.log(idx,orgId);
  552. // return
  553. this.$api.api.zkoperationrecordFindByOrg({
  554. orgType:2,
  555. orgId,
  556. operationType:this.idx==0?'1':'2'
  557. })
  558. .then(res=>{
  559. // console.log(res);
  560. if(res.data.length==0){
  561. // 没有运营人员
  562. this.operaForm.operationalPeople=[]
  563. }else{
  564. let arr=[]
  565. // 有运营
  566. res.data.map(item=>{
  567. arr.push(item.accountId)
  568. })
  569. this.operaForm.operationalPeople=arr
  570. }
  571. })
  572. },
  573. //编辑
  574. infoeditor(row){
  575. this.editoragentobj.id=row.id;
  576. this.$api.http.gitfindById({id:row.id}).then((res) => {
  577. this.editoragentobj.operator=res.data.operator;
  578. this.editoragentobj.name=res.data.name;
  579. this.editoragentobj.contactPerson=res.data.contactPerson;
  580. this.editoragentobj.contactNumber=res.data.contactNumber;
  581. this.editoragentobj.provinceId=res.data.provinceId;
  582. this.editoragentobj.cityId=res.data.cityId;
  583. this.editoragentobj.address=res.data.address;
  584. // this.editoragentobj.operationStaff=res.data.operationStaff;
  585. });
  586. // this.findMyAgent()
  587. this.getparentIdList()
  588. this.clickprovinceId2(this.editoragentobj.provinceId)
  589. this.dialogVisible2=true;
  590. },
  591. //获取市
  592. clickprovinceId2(item){
  593. this.$api.http.getparentIdList({
  594. parentId: item
  595. }).then((res) => {
  596. this.optionscityId= res.data
  597. });
  598. },
  599. //选择省的时候请求市并清空市
  600. clickprovinceId3(){
  601. this.optionscityId=[];
  602. this.editoragentobj.cityId='';
  603. this.$api.http.getparentIdList({
  604. parentId: this.editoragentobj.provinceId
  605. }).then((res) => {
  606. this.optionscityId= res.data
  607. });
  608. },
  609. //选择代理商获取运营人员列表并清空运营人员选择
  610. clickagentId22(){
  611. this.optionsoperationStaff=[];
  612. this.editoragentobj.operationStaff='';
  613. this.$api.http.getAllOperationsStaffByAgent({
  614. agentId: this.editoragentobj.operator
  615. }).then((res) => {
  616. this.optionsoperationStaff= res.data
  617. });
  618. },
  619. //确认编辑
  620. editor(){
  621. this.$refs.editoragentobj.validate((valid) => {
  622. if (valid) {
  623. this.$api.http.updateOrg(this.editoragentobj).then((res) => {
  624. if(res.code==0){
  625. this.dialogVisible2=false;
  626. this.editoragentobj.id='';
  627. this.$refs.editoragentobj.resetFields();
  628. this.Screeningofempty()
  629. }else{
  630. this.$message.error(res.message);
  631. }
  632. });
  633. } else {
  634. return false;
  635. }
  636. });
  637. },
  638. toDisable(row){
  639. this.$confirm(`确定${row.lockFlag==0?'禁用':'启用'}此代理商么?`, '提示', {
  640. confirmButtonText: '确定',
  641. cancelButtonText: '取消',
  642. type: 'warning'
  643. }).then(() => {
  644. // return
  645. // console.log(123);
  646. this.$api.http.updateOrg({id:row.id,lockFlag:row.lockFlag==0?'1':'0'}).then((res) => {
  647. if(res.code==0){
  648. this.$message({
  649. type: 'success',
  650. message: '操作成功!'
  651. });
  652. this.Screeningofempty()
  653. }else{
  654. this.$message.error(res.message);
  655. }
  656. })
  657. })
  658. .catch(err=>{
  659. // console.log('关闭');
  660. // console.log(err);
  661. })
  662. },
  663. //更换
  664. inforeplace(row){
  665. this.replaceagentobj.id=row.id;
  666. this.dialogVisible3=true;
  667. this.passFlag=false
  668. },
  669. //确认更换
  670. replace(){
  671. this.$refs.replaceagentobj.validate((valid) => {
  672. if (valid) {
  673. this.$api.http.changeAccount(this.replaceagentobj).then((res) => {
  674. if(res.code==0){
  675. this.dialogVisible3=false;
  676. this.$refs.replaceagentobj.resetFields();
  677. this.Screeningofempty()
  678. }else{
  679. this.$message.error(res.message);
  680. }
  681. });
  682. } else {
  683. return false;
  684. }
  685. });
  686. },
  687. //删除
  688. toinifodelete(item){
  689. this.$confirm('此操作将永久删除, 是否继续?', '提示', {
  690. confirmButtonText: '确定',
  691. cancelButtonText: '取消',
  692. type: 'warning'
  693. }).then(() => {
  694. this.$api.http.delOrg({id:item.row.id}).then((res) => {
  695. if(res.code==0){
  696. this.$message({
  697. type: 'success',
  698. message: '删除成功!'
  699. });
  700. this.Screeningofempty()
  701. }else{
  702. this.$message.error(res.message);
  703. }
  704. })
  705. }).catch(() => {
  706. this.$message({
  707. type: 'info',
  708. message: '已取消删除'
  709. });
  710. });
  711. },
  712. //新增
  713. infoadd(){
  714. // this.findMyAgent()
  715. this.getparentIdList()
  716. this.dialogVisible=true;
  717. this.passFlag=false
  718. },
  719. //获取运营人员
  720. //获取运营人员
  721. getAllOperationsStaff(idx,row){
  722. this.optionsoperationStaff=[];
  723. if(idx==1){
  724. this.$api.http.getAllOperationsStaffByAgent({
  725. orgCode:row.orgCode
  726. }).then((res) => {
  727. this.optionsoperationStaff= res.data
  728. this.operaVisible=true
  729. });
  730. }else{
  731. this.$api.http.getAllOperationsStaff().then((res) => {
  732. this.optionsoperationStaff= res.data
  733. this.operaVisible=true
  734. });
  735. }
  736. },
  737. //选择代理商获取运营人员列表并清空运营人员选择
  738. clickagentId(){
  739. this.optionsoperationStaff=[];
  740. this.addagentobj.operationStaff='';
  741. this.$api.http.getAllOperationsStaffByAgent({
  742. agentId: this.addagentobj.agentId
  743. }).then((res) => {
  744. this.optionsoperationStaff= res.data
  745. });
  746. },
  747. //获取代理商
  748. findMyAgent(){
  749. this.$api.http.findMyAgent({orgType:this.orgType}).then((res) => {
  750. console.log(res.data)
  751. this.optionsagentId= res.data
  752. this.findAgentByOrgCode()
  753. });
  754. },
  755. findAgentByOrgCode(){
  756. this.$api.api.findAgentByOrgCode({
  757. orgCode:this.agentForm.orgCode
  758. })
  759. .then(res=>{
  760. if(res.data.length==0){
  761. // 没有代理商
  762. this.agentForm.agentId=[]
  763. }else{
  764. let arr=[]
  765. // 有
  766. res.data.map(item=>{
  767. arr.push(item.agentId)
  768. })
  769. // console.log(arr,'123');
  770. this.agentForm.agentId=arr
  771. }
  772. })
  773. },
  774. //选择省的时候请求市并清空市
  775. clickprovinceId(){
  776. this.optionscityId=[];
  777. this.addagentobj.cityId='';
  778. this.$api.http.getparentIdList({
  779. parentId: this.addagentobj.provinceId
  780. }).then((res) => {
  781. this.optionscityId= res.data
  782. });
  783. },
  784. //获取省
  785. getparentIdList(){
  786. this.optionsparentId=[];
  787. this.$api.http.getparentIdList({
  788. parentId: 0
  789. }).then((res) => {
  790. this.optionsparentId= res.data
  791. });
  792. },
  793. //确认新增
  794. add(){
  795. this.$refs.addagentobj.validate((valid) => {
  796. if (valid) {
  797. this.addagentobj.pid=0;
  798. this.$api.http.AddaddOrg(this.addagentobj).then((res) => {
  799. if(res.code==0){
  800. this.dialogVisible=false;
  801. this.$refs.addagentobj.resetFields();
  802. this.Screeningofempty()
  803. }else{
  804. this.$message.error(res.message);
  805. }
  806. });
  807. } else {
  808. return false;
  809. }
  810. });
  811. },
  812. //清空筛选
  813. Screeningofempty(){
  814. this.operatorName='';
  815. this.operationStaffName='';
  816. this.name='';
  817. this.getcompanyList()
  818. },
  819. //筛选
  820. Screening(){
  821. this.getcompanyList()
  822. },
  823. // 获取列表
  824. getcompanyList() {
  825. this.tableData=[];
  826. let parmest={
  827. current: this.pageNum,
  828. size: this.pageSize,
  829. operatorName:this.operatorName,
  830. operationStaffName:this.operationStaffName,
  831. name:this.name,
  832. agentId:localStorage.getItem('agentId'),
  833. orgType: localStorage.getItem("orgType"),
  834. }
  835. this.$api.http.getcompanyList(parmest).then((res) => {
  836. console.log(res.data);
  837. this.tableData=res.data.records;
  838. this.total=res.data.total
  839. });
  840. },
  841. handleSizeChange(val) {
  842. this.pageSize=val;
  843. this.getcompanyList()
  844. },
  845. handleCurrentChange(val) {
  846. this.pageNum=val;
  847. this.getcompanyList()
  848. },
  849. },
  850. };
  851. </script>
  852. <style scoped="scoped" lang="scss" >
  853. .box-center {
  854. width: 100%;
  855. padding: 15px;
  856. min-width: 1200px;
  857. padding-bottom: 100px;
  858. }
  859. .cen-tab{
  860. width: 100%;
  861. padding: 15px;
  862. background: #FFFFFF;
  863. margin-top: 15px;
  864. }
  865. .tophove {
  866. color: #ffffff;
  867. background: #2671e2;
  868. }
  869. .app-top {
  870. width: 100%;
  871. background: #ffffff;
  872. box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
  873. border-radius: 4px;
  874. padding-top: 15px;
  875. padding-bottom: 15px;
  876. .app-titel {
  877. width: 100%;
  878. display: flex;
  879. align-items: center;
  880. .label {
  881. font-size: 14px;
  882. font-weight: 400;
  883. color: #32363d;
  884. line-height: 14px;
  885. margin-left: 15px;
  886. }
  887. .toptimeqhuan {
  888. height: 30px;
  889. background: #ffffff;
  890. display: flex;
  891. align-items: center;
  892. }
  893. .toptimeqhuan div {
  894. padding-left: 20px;
  895. padding-right: 20px;
  896. text-align: center;
  897. line-height: 30px;
  898. font-size: 14px;
  899. margin-right: 15px;
  900. border-radius: 4px;
  901. border: 1px solid #e0e0e0;
  902. }
  903. }
  904. }
  905. </style>