MarketCustomerResourcesHome.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784
  1. <template>
  2. <div class="mcrh" v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
  3. <el-dialog width="960px" title="日志查询" :visible.sync="mcrhVisible">
  4. <el-form ref="form" :model="form" label-width="40px">
  5. <div class="mcrh-dialog">
  6. <el-form-item label="类型">
  7. <el-select @change="logchange" style="width:200px" multiple collapse-tags v-model="form.opTypeLabel" placeholder="请选择类型">
  8. <el-option v-for="(item,index) in logtypearr" :key="index" :label="item.text" :value="item.value"></el-option>
  9. </el-select>
  10. </el-form-item>
  11. <el-form-item label="人员">
  12. <el-select @change="logchange" style="width:200px" multiple collapse-tags v-model="form.opUserLabel" placeholder="请选择人员">
  13. <el-option v-for="(item,index) in personnelarr" :key="index" :label="item.text" :value="item.value"></el-option>
  14. </el-select>
  15. </el-form-item>
  16. <el-form-item label="日期">
  17. <el-date-picker @change="logchange" style="width:350px" v-model="form.time" type="daterange" align="right" unlink-panels
  18. range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
  19. :picker-options="pickerOptions">
  20. </el-date-picker>
  21. </el-form-item>
  22. </div>
  23. </el-form>
  24. <div>
  25. <el-table
  26. height="529px"
  27. :data="logtableData"
  28. border
  29. style="width: 100%">
  30. <el-table-column
  31. prop="rowIndex"
  32. label="序号"
  33. width="150">
  34. </el-table-column>
  35. <el-table-column
  36. prop="label"
  37. label="具体事件">
  38. </el-table-column>
  39. <el-table-column
  40. prop="createTime"
  41. label="操作时间"
  42. width="180">
  43. </el-table-column>
  44. </el-table>
  45. <div style="text-align: center;">
  46. <el-pagination
  47. @size-change="loghandleSizeChange"
  48. @current-change="loghandleCurrentChange"
  49. :current-page="logcurrentPage"
  50. :page-sizes="[10, 15, 20]"
  51. :page-size="logpagesize"
  52. layout="total, sizes, prev, pager, next, jumper"
  53. :total="logtotal">
  54. </el-pagination>
  55. </div>
  56. </div>
  57. </el-dialog>
  58. <div class="mcr-box">
  59. <div class="mcr-head">
  60. <!-- 预计出团量 -->
  61. <!-- <div style="display: flex;margin-bottom: 10px;">
  62. <div style="width:24%">
  63. 预计出团:<span>{{ preDele }}</span>
  64. </div>
  65. <div style="width:24%">
  66. 预计出团总量:<span>{{ groupNumber.preDeleAll }}</span>
  67. </div>
  68. <div style="width:24%">
  69. 已出团:<span>{{ finlishedDele }}</span>
  70. </div>
  71. <div style="width:24%">
  72. 已出团总量:<span>{{ groupNumber.finlishedDeleAll }}</span>
  73. </div>
  74. </div> -->
  75. <div>
  76. <el-select v-model="principalSel" :disabled='isSelect' clearable placeholder="负责人" style="width
  77. :18%" @change="QueryData">
  78. <el-option v-for="item in principalList" :key="item.id" :label="item.name" :value="item.id">
  79. </el-option>
  80. </el-select>
  81. <el-select v-model="territorySel" clearable placeholder="省域" style="width
  82. :18%" @change="(val) => { this.clientTypeSel = ''; this.clientLvSel = ''; QueryData(); }">
  83. <el-option v-for="item in territoryList" :key="item.id" :label="item.name" :value="item.id">
  84. </el-option>
  85. </el-select>
  86. <el-select v-model="clientLvSel" clearable placeholder="客户级别" style="width
  87. :18%" @change="(val) => { this.clientTypeSel = ''; QueryData(); }">
  88. <el-option v-for="item in clientLvList" :key="item.id" :label="item.name" :value="item.id">
  89. </el-option>
  90. </el-select>
  91. <el-select v-model="clientTypeSel" clearable placeholder="客户类别" style="width
  92. :18%" @change="QueryData">
  93. <el-option v-for="item in clientTypeList" :key="item.id" :label="item.name" :value="item.id">
  94. </el-option>
  95. </el-select>
  96. <el-select v-model="businessClassSel" clearable placeholder="业务分类" style="width
  97. :16%" @change="QueryData">
  98. <el-option v-for="item in businessClassList" :key="item.id" :label="item.name" :value="item.id">
  99. </el-option>
  100. </el-select>
  101. </div>
  102. <!-- textbox框 -->
  103. <div style="display: flex;margin-top: 10px;position: relative;">
  104. <div style="width: 28%;">
  105. <el-input v-model="inputLXR" placeholder="联系人"></el-input>
  106. </div>
  107. &nbsp;
  108. <div style="width: 26.5%;">
  109. <el-input v-model="inputDQ" placeholder="地区"></el-input>
  110. </div>
  111. &nbsp;
  112. <div style="width: 27%;">
  113. <el-input v-model="inputDW" placeholder="单位"></el-input>
  114. </div>
  115. &nbsp;
  116. <el-button v-if="userId==21" type="primary" @click="NewClientDataAuthorityExcelDownload">按权限导出</el-button>
  117. &nbsp;
  118. <div class="btnOp">
  119. <div>
  120. <el-button type="primary" @click="QueryData">查 询</el-button>
  121. <el-button v-if="userId==21" type="primary" @click="NewClientDataExcelDownload">导
  122. 出</el-button>
  123. </div>
  124. <div style="height: 10px;">
  125. </div>
  126. <div>
  127. <el-button type="primary" @click="Add">新 增</el-button>
  128. <el-button @click="logquery" v-if="userId==21" type="primary">日 志</el-button>
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. <div class="mcr-table">
  134. <el-table :data="PageList" border @select="handleSelect" :cell-class-name="addClass"
  135. style="width: 100%">
  136. <el-table-column prop="weight" label="权重" width="50">
  137. <template slot-scope="scope">
  138. <span v-if="scope.row.weight == '393'">A</span>
  139. <span v-else-if="scope.row.weight == '392'">B</span>
  140. <span v-else-if="scope.row.weight == '391'">C</span>
  141. </template>
  142. </el-table-column>
  143. <el-table-column prop="client" label="单位" width="230">
  144. </el-table-column>
  145. <el-table-column prop="contact" label="联系人" width="90">
  146. </el-table-column>
  147. <el-table-column prop="job" label="职位" width="110">
  148. </el-table-column>
  149. <el-table-column prop="telephone" label="手机号" width="120">
  150. </el-table-column>
  151. <el-table-column prop="phone" label="座机号" width="120">
  152. </el-table-column>
  153. <el-table-column prop="location" label="所在区域" width="130">
  154. </el-table-column>
  155. <!-- <el-table-column prop="birthday" label="生日">
  156. </el-table-column> -->
  157. <el-table-column prop="ascribedDepartment" label="业务归属" width="80">
  158. <template slot-scope="scope">
  159. <el-tooltip class="item" effect="dark" placement="top">
  160. <span style="text-decoration: underline;">查看</span>
  161. <div slot="content">
  162. <div v-for="(yw, index) in scope.row.ascribedDepartment" :key="index"
  163. style="text-align: center; width: 100px;padding: 5px;">
  164. {{ yw.name+'部' }}<br /><br />
  165. </div>
  166. {{ scope.row.notUpdateDays+'天未修改数据' }}
  167. </div>
  168. </el-tooltip>
  169. </template>
  170. </el-table-column>
  171. <el-table-column prop="ascribedUser" label="负责人" width="85">
  172. <template slot-scope="scope">
  173. <!-- <el-tooltip class="item" effect="dark" placement="top">
  174. <span style="color:royalblue">查看</span>
  175. <div slot="content">
  176. <div v-for="yw in scope.row.ascribedUser"
  177. style="text-align: center; width: 100px;padding: 5px;">
  178. {{ yw.cnName }}
  179. </div>
  180. </div>
  181. </el-tooltip> -->
  182. <div v-for="(yw, index) in scope.row.ascribedUser" :key="index" style="text-align: center;">
  183. {{ yw.cnName }}
  184. </div>
  185. </template>
  186. </el-table-column>
  187. <el-table-column prop="remark" label="备注">
  188. <template slot-scope="scope">
  189. <div id="remark">
  190. <el-tooltip v-show="scope.row.remark != ''" class="item" effect="dark"
  191. :content="scope.row.remark" placement="top">
  192. <span v-if="scope.row.remark.length > 10">{{ scope.row.remark.slice(0, 10) + "..."
  193. }}</span>
  194. <span v-else>{{ scope.row.remark }}</span>
  195. <div slot="content">
  196. <div style="width: 300px;">
  197. {{ scope.row.remark }}
  198. </div>
  199. </div>
  200. </el-tooltip>
  201. </div>
  202. </template>
  203. </el-table-column>
  204. <!-- <el-table-column prop="preDele" label="预计出团">
  205. </el-table-column>
  206. <el-table-column prop="finlishedDele" label="已出团">
  207. </el-table-column> -->
  208. <el-table-column label="操作" width="200">
  209. <template slot-scope="scope">
  210. <el-button type="primary" size="mini" @click="Edit(scope.row)">编
  211. 辑</el-button>
  212. <el-button type="danger" size="mini" @click="Del(scope.row)">删
  213. 除</el-button>
  214. </template>
  215. </el-table-column>
  216. </el-table>
  217. <div class="block">
  218. <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
  219. :current-page.sync="currentPage" :page-sizes="[10, 20]" :page-size="pageSize"
  220. layout="total, sizes, prev, pager, next" :total="total">
  221. </el-pagination>
  222. </div>
  223. </div>
  224. </div>
  225. </div>
  226. </template>
  227. <script>
  228. export default {
  229. data() {
  230. return {
  231. pickerOptions: {
  232. shortcuts: [{
  233. text: '最近一周',
  234. onClick(picker) {
  235. const end = new Date();
  236. const start = new Date();
  237. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  238. picker.$emit('pick', [start, end]);
  239. }
  240. }, {
  241. text: '最近一个月',
  242. onClick(picker) {
  243. const end = new Date();
  244. const start = new Date();
  245. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  246. picker.$emit('pick', [start, end]);
  247. }
  248. }, {
  249. text: '最近三个月',
  250. onClick(picker) {
  251. const end = new Date();
  252. const start = new Date();
  253. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  254. picker.$emit('pick', [start, end]);
  255. }
  256. }]
  257. },
  258. total: 0, //总行数
  259. principalSel: '',
  260. principalList: [],//负责人数据
  261. territorySel: '',
  262. territoryList: [],//省域数据
  263. clientLvSel: '',
  264. clientLvList: [],//客户级别数据
  265. clientTypeSel: '',
  266. clientTypeList: [],//客户类别数据]
  267. businessClassSel: '',
  268. businessClassList: [],//业务分类
  269. PageList: [], //页面数据
  270. currentPage: 1, // 当前页码
  271. pageSize: 10,// 每页的数据条数
  272. loading: true,
  273. inputLXR: '', //联系人
  274. inputDQ: '', //地区
  275. inputDW: '', //单位
  276. pageloadData: {
  277. "portType": 1,
  278. "pageIndex": 1,
  279. "pageSize": 10,
  280. "contact": "",
  281. "location": "",
  282. "client": "",
  283. "userid": "",
  284. "lvlid": 0,
  285. "business": "",
  286. "Range": 0,
  287. "Category": 0,
  288. "operationUserId": 0
  289. },
  290. groupNumber: {
  291. preDeleAll: '',
  292. finlishedDeleAll: ''
  293. },
  294. userId: 0,
  295. token: '',
  296. isSelect: true,
  297. mcrhVisible:false,
  298. form:{
  299. opTypeLabel:'',
  300. opUserLabel:'',
  301. time:'',
  302. },
  303. logtypearr:[],
  304. personnelarr:[],
  305. logtableData:[],
  306. logcurrentPage:1,
  307. logpagesize:10,
  308. logtotal:0,
  309. }
  310. },
  311. methods: {
  312. //处理日期
  313. datetime(val){
  314. var date=new Date(val);
  315. var y=date.getFullYear();
  316. var m=date.getMonth()+1>=10?date.getMonth()+1:'0'+(date.getMonth()+1).toString();
  317. var d=date.getDate()>=10?date.getDate():'0'+(date.getDate()).toString();
  318. return y+'-'+m+'-'+d
  319. },
  320. loghandleSizeChange(val) {
  321. this.logpagesize=val;
  322. this.logchange();
  323. },
  324. loghandleCurrentChange(val) {
  325. this.logcurrentPage=val;
  326. this.logchange();
  327. },
  328. //每页条数改变时触发 选择一页显示多少行
  329. handleSizeChange(val) {
  330. this.currentPage = 1;
  331. this.pageSize = val;
  332. this.pageloadData.pageIndex = this.currentPage;
  333. this.pageloadData.pageSize = this.pageSize;
  334. this.pageload();
  335. },
  336. //当前页改变时触发 跳转其他页
  337. handleCurrentChange(val) {
  338. this.loading = true;
  339. this.pageloadData.pageIndex = val;
  340. this.pageloadData.pageSize = this.pageSize;
  341. this.pageload();
  342. },
  343. //logchange
  344. logchange(){
  345. let opTypeLabels='';
  346. let opUserLabels='';
  347. for(let i=0;i<this.form.opTypeLabel.length;i++){
  348. opTypeLabels+=this.form.opTypeLabel[i]+','
  349. }
  350. opTypeLabels=opTypeLabels.substring(0, opTypeLabels.length - 1)
  351. for(let j=0;j<this.form.opUserLabel.length;j++){
  352. opUserLabels+=this.form.opUserLabel[j]+','
  353. }
  354. opUserLabels=opUserLabels.substring(0, opUserLabels.length - 1)
  355. this.NewClientDataRecord(opTypeLabels,opUserLabels,this.datetime(this.form.time[0]),this.datetime(this.form.time[1]))
  356. },
  357. //历史记录
  358. NewClientDataRecord(opTypeLabel,opUserLabel,beginTime,endTime){
  359. var that = this;
  360. var url = "/api/MarketCustomerResources/NewClientDataRecord"
  361. this.$axios({
  362. method: 'post',
  363. url: url,
  364. data:{
  365. portType:1,
  366. userId: that.userId,
  367. pageId: 89,
  368. pageIndex: that.logcurrentPage,
  369. pageSize: that.logpagesize,
  370. opTypeLabel: opTypeLabel,
  371. opUserLabel: opUserLabel,
  372. beginTime: beginTime,
  373. endTime: endTime,
  374. }
  375. }).then(function (res) {
  376. if (res.data.code == 200) {
  377. let datalog=res.data.data;
  378. that.logtableData=datalog;
  379. that.logtotal=res.data.count;
  380. } else {
  381. that.$message.error(res.data.msg);
  382. }
  383. })
  384. },
  385. //多选框选中方法
  386. handleSelect(selection, row) {
  387. },
  388. //日志基础数据
  389. NewClientDataRecordInit(){
  390. var that = this;
  391. var url = "/api/MarketCustomerResources/NewClientDataRecordInit"
  392. this.$axios({
  393. method: 'post',
  394. url: url,
  395. data:{
  396. portType:1,
  397. userId: that.userId,
  398. pageId: 89,
  399. }
  400. }).then(function (res) {
  401. if (res.data.code == 200) {
  402. let datainfo=res.data.data;
  403. that.logtypearr=datainfo.operations;
  404. that.personnelarr=datainfo.userDatas;
  405. } else {
  406. that.$message.error(res.data.msg);
  407. }
  408. })
  409. },
  410. //日志查询
  411. logquery(){
  412. this.mcrhVisible=true;
  413. this.logtableData=[];
  414. this.form={
  415. opTypeLabel:'',
  416. opUserLabel:'',
  417. time:'',
  418. },
  419. this.logchange();
  420. },
  421. //条件颜色
  422. addClass({row,column,rowIndex,columnIndex}){
  423. if(row.notUpdateDays >= 365){
  424. return 'cell-grey';
  425. }
  426. },
  427. NewClientDataAuthorityExcelDownload(){
  428. var url = "/api/MarketCustomerResources/NewClientDataAuthorityExcelDownload"
  429. var that = this
  430. that.$axios({
  431. method: 'post',
  432. url: url,
  433. headers: {
  434. Authorization: 'Bearer '
  435. },
  436. data: {
  437. portType:1,
  438. pageIndex:that.pageloadData.pageIndex,
  439. pageSize:that.pageloadData.pageIndex,
  440. operationUserId:that.userId,
  441. contact:that.pageloadData.contact,
  442. location:that.pageloadData.location,
  443. client:that.pageloadData.client,
  444. userid:that.pageloadData.userid,
  445. lvlid:that.pageloadData.lvlid,
  446. business:that.pageloadData.business,
  447. range:that.pageloadData.Range,
  448. category:that.pageloadData.Category,
  449. pageId:89,
  450. }
  451. }).then(function (res) {
  452. if (res.data.code == 200) {
  453. that.$message({
  454. type: 'success',
  455. message: res.data.msg,
  456. });
  457. window.open(res.data.data)
  458. }else{
  459. that.$message({
  460. message: res.data.msg,
  461. type: 'warning'
  462. });
  463. }
  464. })
  465. },
  466. NewClientDataExcelDownload(){
  467. var url = "api/MarketCustomerResources/NewClientDataExcelDownload"
  468. var that = this
  469. that.$axios({
  470. method: 'post',
  471. url: url,
  472. headers: {
  473. Authorization: 'Bearer '
  474. },
  475. data: {
  476. portType:1,
  477. pageIndex:that.pageloadData.pageIndex,
  478. pageSize:that.pageloadData.pageIndex,
  479. operationUserId:that.userId,
  480. contact:that.pageloadData.contact,
  481. location:that.pageloadData.location,
  482. client:that.pageloadData.client,
  483. userid:that.pageloadData.userid,
  484. lvlid:that.pageloadData.lvlid,
  485. business:that.pageloadData.business,
  486. range:that.pageloadData.Range,
  487. category:that.pageloadData.Category,
  488. pageId:89,
  489. }
  490. }).then(function (res) {
  491. if (res.data.code == 200) {
  492. that.$message({
  493. type: 'success',
  494. message: res.data.msg,
  495. });
  496. window.open(res.data.data)
  497. }else{
  498. that.$message({
  499. message: res.data.msg,
  500. type: 'warning'
  501. });
  502. }
  503. })
  504. },
  505. pageload() {
  506. var that = this;
  507. if (this.userId == 21 || this.userId == 95) {
  508. this.isSelect = false;
  509. }
  510. that.pageloadData.operationUserId = that.userId
  511. //初始化界面数据
  512. console.log(that.pageloadData)
  513. this.$axios.post('/api/MarketCustomerResources/QueryNewClientData', that.pageloadData, {
  514. headers: {
  515. 'Authorization': that.token,
  516. },
  517. }).then(resp => {
  518. if (resp.data.code == 200) {
  519. if (resp.data.data == null) {
  520. that.PageList = [];
  521. that.total = 0;
  522. this.$message.error(resp.data.msg);
  523. } else {
  524. that.principalList = resp.data.data.users; //负责人
  525. that.clientLvList = resp.data.data.level;//客户级别
  526. that.clientTypeList = resp.data.data.customerClass;//客户类别
  527. that.territoryList = resp.data.data.province; //省域数据
  528. that.businessClassList = resp.data.data.serviceClass; //业务归属
  529. that.PageList = resp.data.data.clientTableData.pageSource; //table数据
  530. that.total = resp.data.data.clientTableData.pageCount; //总数
  531. that.groupNumber = resp.data.data.groupNumber; //团组出团总数
  532. console.log(that.pageloadData.pageIndex, parseInt(that.pageloadData.pageIndex), 'that.pageloadData.pageIndex')
  533. that.currentPage = parseInt(that.pageloadData.pageIndex);
  534. }
  535. that.territoryChange();
  536. that.loading = false;
  537. } else if (resp.data.code == 400) {
  538. that.PageList = [];
  539. that.total = 0;
  540. that.loading = false;
  541. that.$message.error('暂无数据!');
  542. }
  543. }).catch(err => {
  544. this.$message.error('网络异常!');
  545. this.loading = false;
  546. })
  547. },
  548. //保存权限
  549. saveData() {
  550. var that = this;
  551. },
  552. QueryData() {
  553. this.loading = true;
  554. this.pageloadData.pageIndex = this.currentPage;
  555. this.pageloadData.pageSize = this.pageSize;
  556. this.pageloadData.location = this.inputDQ; //地区
  557. this.pageloadData.client = this.inputDW; //单位
  558. this.pageloadData.contact = this.inputLXR; //联系人
  559. this.pageloadData.userid = this.principalSel.toString(); //负责人
  560. this.pageloadData.Range = this.territorySel == '' ? 0 : this.territorySel;//省域
  561. this.pageloadData.lvlid = this.clientLvSel == '' ? 0 : this.clientLvSel; //客户级别
  562. this.pageloadData.Category = this.clientTypeSel == '' ? 0 : this.clientTypeSel;//客户类别
  563. this.pageloadData.business = this.businessClassSel.toString();//业务分类
  564. this.pageloadData.operationUserId = this.userId;//
  565. this.pageload();
  566. },
  567. Edit(row) {
  568. localStorage.setItem("mcrPageData", JSON.stringify({
  569. inputLXR: this.inputLXR,
  570. inputDW: this.inputDW,
  571. inputDQ: this.inputDQ,
  572. principalSel: this.principalSel,
  573. territorySel: this.territorySel,
  574. clientLvSel: this.clientLvSel,
  575. clientTypeSel: this.clientTypeSel,
  576. businessClassSel: this.businessClassSel,
  577. pageSize: this.pageSize,
  578. currentPage: this.currentPage,
  579. }));
  580. this.$router.push('/home/MCROper?id=' + row.id);
  581. },
  582. Del(row) {
  583. var that = this;
  584. var delData = {
  585. "portType": 1,
  586. "id": row.id,
  587. "deleteUserId": this.userId
  588. }
  589. console.log(delData);
  590. this.$axios.post('/api/MarketCustomerResources/NewClientDel', delData, {
  591. headers: {
  592. 'Authorization': that.token,
  593. }
  594. }).then(resp => {
  595. if (resp.data.code == 200) {
  596. that.$message({
  597. message: '删除成功!',
  598. type: 'success'
  599. });
  600. } else {
  601. that.$message.error(resp.data.msg);
  602. }
  603. that.pageload();
  604. });
  605. },
  606. Add(row) {
  607. localStorage.setItem("mcrPageData", JSON.stringify({
  608. inputLXR: this.inputLXR,
  609. inputDW: this.inputDW,
  610. inputDQ: this.inputDQ,
  611. principalSel: this.principalSel,
  612. territorySel: this.territorySel,
  613. clientLvSel: this.clientLvSel,
  614. clientTypeSel: this.clientTypeSel,
  615. businessClassSel: this.businessClassSel,
  616. pageSize: this.pageSize,
  617. currentPage: this.currentPage,
  618. }));
  619. this.$router.push('/home/MCROper?id=' + 0);
  620. },
  621. territoryChange() {
  622. var sid = this.territorySel;
  623. if (!sid) {
  624. sid = 0;
  625. }
  626. this.$axios.post('/api/MarketCustomerResources/QueryClientType', {
  627. SetDataIdArr: [sid]
  628. }, {
  629. headers: {
  630. 'Authorization': this.token,
  631. },
  632. }).then(resp => {
  633. if (resp.data.code == 200) {
  634. this.clientTypeList = resp.data.data.typeArr; //客户类别
  635. this.clientLvList = resp.data.data.lvArr; //客户级别
  636. console.log(this.clientLvSel, "clientLvSel---------------");
  637. if (this.clientLvSel) {
  638. this.territoryChangeSecond();
  639. }
  640. } else {
  641. //js抛异常
  642. throw new Error(resp.data.msg);
  643. }
  644. }).catch(err => {
  645. this.$message.error('网络异常!');
  646. })
  647. },
  648. territoryChangeSecond() {
  649. var sid = this.clientLvSel;
  650. if (!sid) {
  651. sid = 0;
  652. }
  653. this.$axios.post('/api/MarketCustomerResources/QueryClientTypeSecond', {
  654. SetDataIdArr: [sid]
  655. }, {
  656. headers: {
  657. 'Authorization': this.token,
  658. },
  659. }).then(resp => {
  660. if (resp.data.code == 200) {
  661. this.clientTypeList = resp.data.data; //客户类别
  662. } else {
  663. //js抛异常
  664. throw new Error(resp.data.msg);
  665. }
  666. }).catch(err => {
  667. this.$message.error('网络异常!');
  668. })
  669. },
  670. },
  671. mounted() {
  672. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  673. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  674. this.NewClientDataRecordInit();
  675. var mcrPageData = localStorage.getItem("mcrPageData");
  676. if (mcrPageData) {
  677. try {
  678. console.log(mcrPageData);
  679. var json = JSON.parse(mcrPageData);
  680. this.inputLXR = json.inputLXR;
  681. this.inputDW = json.inputDW;
  682. this.inputDQ = json.inputDQ;
  683. this.principalSel = json.principalSel;
  684. this.territorySel = json.territorySel;
  685. this.clientLvSel = json.clientLvSel;
  686. this.clientTypeSel = json.clientTypeSel;
  687. this.businessClassSel = json.businessClassSel;
  688. this.pageSize = json.pageSize;
  689. this.currentPage = json.currentPage;
  690. localStorage.removeItem("mcrPageData");
  691. this.QueryData();
  692. } catch (e) {
  693. this.pageload();
  694. }
  695. return;
  696. }
  697. this.pageload();
  698. },
  699. created() {
  700. var mcrPageData = localStorage.getItem("mcrPageData");
  701. if (mcrPageData) {
  702. var json = JSON.parse(mcrPageData);
  703. this.currentPage = json.currentPage;
  704. }
  705. },
  706. computed: {
  707. preDele() {
  708. var number = 0;
  709. this.PageList.forEach(element => {
  710. number += element.preDele;
  711. });
  712. return number;
  713. },
  714. finlishedDele() {
  715. var number = 0;
  716. this.PageList.forEach(element => {
  717. number += element.finlishedDele;
  718. });
  719. return number;
  720. }
  721. }
  722. }
  723. </script>
  724. <style>
  725. body {
  726. margin: 0;
  727. padding: 0;
  728. }
  729. .mcr-box {
  730. background-color: #fff;
  731. padding: 10px;
  732. border-radius: 10px;
  733. }
  734. .mcr-table {
  735. margin-top: 10px;
  736. }
  737. .mcr-table .block {
  738. margin-top: 10px;
  739. }
  740. .mcr-table .el-table--enable-row-transition .el-table__body td.el-table__cell {
  741. text-align: center;
  742. }
  743. .mcr-table .el-table--border .el-table__cell:first-child .cell {
  744. text-align: center;
  745. }
  746. .mcr-input {
  747. display: flex;
  748. }
  749. .mcr-input .el-select {
  750. margin-right: 5px;
  751. }
  752. .btnOp {
  753. position: absolute;
  754. right: 6px;
  755. top: -50px;
  756. }
  757. .mcrh .cell-grey{
  758. color: red;
  759. }
  760. .mcrh-dialog{
  761. display: flex;
  762. justify-content: space-between;
  763. }
  764. </style>