index.vue 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847
  1. <template>
  2. <div v-loading="loading">
  3. <div class="white-box">
  4. <div class="filter-box">
  5. <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
  6. </div>
  7. <el-table ref="wrapper" :data="tableData" stripe style="width: 100%;" @selection-change="handleSelectionChange"
  8. :height="tool.getTableHeight()">
  9. <el-table-column fixed type="selection" width="55" v-if="tableHeaders"></el-table-column>
  10. <el-table-column v-for="(tableHeader, key) in tableHeaders" :key="key" :label="tableHeader.header"
  11. :width="tableHeader.other.width ? tableHeader.other.width : ''" :fixed="tableHeader.index=='USER_NAME' || tableHeader.index=='REAL_NAME' ?true:false">
  12. <template slot-scope="scope">
  13. <template v-if="scope.row[tableHeader.index].other.tag">
  14. <el-tag
  15. :type="scope.row[tableHeader.index].other.tag.type ? scope.row[tableHeader.index].other.tag.type : null"
  16. :size="scope.row[tableHeader.index].other.tag.size ? scope.row[tableHeader.index].other.tag.size : null"
  17. :class="scope.row[tableHeader.index].other.tag.class ? scope.row[tableHeader.index].other.tag.class : null">
  18. {{scope.row[tableHeader.index].value}}
  19. </el-tag>
  20. </template>
  21. <template v-else>
  22. <template v-if="tableHeader.index === 'USER_NAME'">
  23. <el-dropdown v-if="permission.hasPermission(`user/login-to-frontend`)">
  24. <span class="el-dropdown-link">
  25. {{scope.row.USER_NAME.value}} <i class="el-icon-arrow-down el-icon--right"></i>
  26. </span>
  27. <el-dropdown-menu slot="dropdown">
  28. <el-dropdown-item command="login" v-show="scope.row.BTF_URL !== null">
  29. <a :href="`${frontendServer}/#/login-by-backend?${scope.row.BTF_URL}`" target="_blank"
  30. style="color:#606266;">Quick logon<!-- 快速登录 --></a>
  31. </el-dropdown-item>
  32. </el-dropdown-menu>
  33. </el-dropdown>
  34. <el-tag type="primary" size="small" class="no-border"
  35. v-if="!permission.hasPermission(`user/login-to-frontend`)">{{scope.row.USER_NAME.value}}
  36. </el-tag>
  37. </template>
  38. <template v-else>
  39. <div v-html="scope.row[tableHeader.index].value"></div>
  40. </template>
  41. </template>
  42. </template>
  43. </el-table-column>
  44. <el-table-column fixed="right" label="operation" width="180"><!-- 操作 -->
  45. <template slot-scope="scope">
  46. <el-dropdown size="small" trigger="click">
  47. <el-button type="primary" size="small" @click.stop="">
  48. Operate on this data<!-- 操作该数据 --><i class="el-icon-arrow-down el-icon--right"></i>
  49. </el-button>
  50. <el-dropdown-menu slot="dropdown">
  51. <el-dropdown-item @click.native="handleModifyPassword(scope.row)"
  52. v-if="permission.hasPermission(`user/modify-password`)">Change Password<!-- 修改密码 -->
  53. </el-dropdown-item>
  54. <el-dropdown-item @click.native="handleModifyProfile(scope.row)"
  55. v-if="permission.hasPermission(`user/modify-profile`)">Modify personal data<!-- 修改个人资料 -->
  56. </el-dropdown-item>
  57. <el-dropdown-item @click.native="handleStatusActive(scope.row)" v-if="permission.hasPermission(`user/modify-status`)">Status activation<!-- 状态激活 --> </el-dropdown-item>
  58. <el-dropdown-item @click.native="handleStatusLock(scope.row)" v-if="permission.hasPermission(`user/modify-status`)">Status lock<!-- 状态锁定 --> </el-dropdown-item>
  59. <el-dropdown-item @click.native="handleIsModifyPassword(scope.row, 1)" v-if="permission.hasPermission(`user/is-modify-password-status`)">Open password modification<!-- 开启密码修改 --></el-dropdown-item>
  60. <el-dropdown-item @click.native="handleIsModifyPassword(scope.row, 0)" v-if="permission.hasPermission(`user/is-modify-password-status`)">Turn off password modification<!-- 关闭密码修改 --></el-dropdown-item>
  61. </el-dropdown-menu>
  62. </el-dropdown>
  63. </template>
  64. </el-table-column>
  65. </el-table>
  66. <div class="white-box-footer">
  67. <!--<el-dropdown size="small" trigger="click"-->
  68. <!--v-show="permission.hasPermission(`user/close-login`)||permission.hasPermission(`user/close-area-login`)||permission.hasPermission(`user/batch-close-login`)">-->
  69. <!--<el-button type="primary" size="small" @click.stop="">-->
  70. <!--登录管理<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
  71. <!--</el-button>-->
  72. <!--<el-dropdown-menu slot="dropdown">-->
  73. <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(1)"-->
  74. <!--v-show="permission.hasPermission(`user/batch-close-login`)">按指定会员管理登录-->
  75. <!--</el-dropdown-item>-->
  76. <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(2)"-->
  77. <!--v-show="permission.hasPermission(`user/close-login`)">按开拓网络管理登录-->
  78. <!--</el-dropdown-item>-->
  79. <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(3)"-->
  80. <!--v-show="permission.hasPermission(`user/close-login`)">按安置网络管理登录-->
  81. <!--</el-dropdown-item>-->
  82. <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(4)"-->
  83. <!--v-show="permission.hasPermission(`user/close-login`)">按会员体系管理登录-->
  84. <!--</el-dropdown-item>-->
  85. <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(5)"-->
  86. <!--v-show="permission.hasPermission(`user/close-area-login`)">按省份地区管理登录-->
  87. <!--</el-dropdown-item>-->
  88. <!--<el-dropdown-item command="closeLogin" @click.native="handleCloseLogin(1, 1)" v-show="false">禁止商城系统登录-->
  89. <!--</el-dropdown-item>-->
  90. <!--<el-dropdown-item command="allowLogin" @click.native="handleCloseLogin(0, 1)" v-show="false">允许商城系统登录-->
  91. <!--</el-dropdown-item>-->
  92. <!--<el-dropdown-item command="closeLogin" @click.native="handleCloseLogin(1, 2)" v-show="false">禁止结算系统登录-->
  93. <!--</el-dropdown-item>-->
  94. <!--<el-dropdown-item command="allowLogin" @click.native="handleCloseLogin(0, 2)" v-show="false">允许结算系统登录-->
  95. <!--</el-dropdown-item>-->
  96. <!--<el-dropdown-item command="closeLogin" @click.native="handleCloseLogin(1, 3)" v-show="false">全部禁止登录-->
  97. <!--</el-dropdown-item>-->
  98. <!--<el-dropdown-item command="allowLogin" @click.native="handleCloseLogin(0, 3)" v-show="false">全部允许登录-->
  99. <!--</el-dropdown-item>-->
  100. <!--</el-dropdown-menu>-->
  101. <!--</el-dropdown>-->
  102. <!--<el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-group`)">-->
  103. <!--<el-button type="primary" size="small" @click.stop="">-->
  104. <!--团队管理<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
  105. <!--</el-button>-->
  106. <!--<el-dropdown-menu slot="dropdown">-->
  107. <!--<el-dropdown-item command="isGroup" @click.native="handleGroupManage(true)">设为团队领导人</el-dropdown-item>-->
  108. <!--<el-dropdown-item command="notGroup" @click.native="handleGroupManage(false)">取消团队领导人-->
  109. <!--</el-dropdown-item>-->
  110. <!--</el-dropdown-menu>-->
  111. <!--</el-dropdown>-->
  112. <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-dec`)">
  113. <el-button type="primary" size="small" @click.stop="">
  114. Declaration Center Management<!-- 报单中心管理 --><i class="el-icon-arrow-down el-icon--right"></i>
  115. </el-button>
  116. <el-dropdown-menu slot="dropdown">
  117. <el-dropdown-item command="isDec" @click.native="handleIsDecManage(true)">Set as declaration Center<!-- 设为报单中心 --></el-dropdown-item>
  118. <el-dropdown-item command="notDec" @click.native="handleIsDecManage(false)">Cancel entry Center<!-- 取消报单中心 -->
  119. </el-dropdown-item>
  120. </el-dropdown-menu>
  121. </el-dropdown>
  122. <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-studio`)">
  123. <el-button type="primary" size="small" @click.stop="">
  124. Studio management<!-- 工作室管理 --><i class="el-icon-arrow-down el-icon--right"></i>
  125. </el-button>
  126. <el-dropdown-menu slot="dropdown">
  127. <el-dropdown-item command="isStudio" @click.native="handleIsStudioManage(true)">Set as studio<!-- 设为工作室 --></el-dropdown-item>
  128. <el-dropdown-item command="notStudio" @click.native="handleIsStudioManage(false)">Cancel room<!-- 取消工作室 -->
  129. </el-dropdown-item>
  130. </el-dropdown-menu>
  131. </el-dropdown>
  132. <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-atlas`)">
  133. <el-button type="primary" size="small" @click.stop="">
  134. Atlas management<!-- 图谱管理 --><i class="el-icon-arrow-down el-icon--right"></i>
  135. </el-button>
  136. <el-dropdown-menu slot="dropdown">
  137. <el-dropdown-item command="isAtlas" @click.native="handleIsAtlasManage(true)">Display Atlas<!-- 显示图谱 --></el-dropdown-item>
  138. <el-dropdown-item command="notAtlas" @click.native="handleIsAtlasManage(false)">Hidden Atlas<!-- 隐藏图谱 -->
  139. </el-dropdown-item>
  140. </el-dropdown-menu>
  141. </el-dropdown>
  142. <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-recharge`)">
  143. <el-button type="primary" size="small" @click.stop="">
  144. Recharge management<!-- 充值管理 --><i class="el-icon-arrow-down el-icon--right"></i>
  145. </el-button>
  146. <el-dropdown-menu slot="dropdown">
  147. <el-dropdown-item command="isAtlas" @click.native="handleIsRechargeManage(true)">Display recharge<!-- 显示充值 --></el-dropdown-item>
  148. <el-dropdown-item command="notAtlas" @click.native="handleIsRechargeManage(false)">Hide recharge<!-- 隐藏充值 -->
  149. </el-dropdown-item>
  150. </el-dropdown-menu>
  151. </el-dropdown>
  152. <!--<el-dropdown size="small" trigger="click"-->
  153. <!--v-show="permission.hasPermission(`user/close-dec`)||permission.hasPermission(`user/close-area-dec`)||permission.hasPermission(`user/batch-close-dec`)">-->
  154. <!--<el-button type="primary" size="small" @click.stop="">-->
  155. <!--报单管理<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
  156. <!--</el-button>-->
  157. <!--<el-dropdown-menu slot="dropdown">-->
  158. <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(1)"-->
  159. <!--v-show="permission.hasPermission(`user/batch-close-dec`)">按指定会员管理报单-->
  160. <!--</el-dropdown-item>-->
  161. <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(2)"-->
  162. <!--v-show="permission.hasPermission(`user/close-dec`)">按开拓网络管理报单-->
  163. <!--</el-dropdown-item>-->
  164. <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(3)"-->
  165. <!--v-show="permission.hasPermission(`user/close-dec`)">按安置网络管理报单-->
  166. <!--</el-dropdown-item>-->
  167. <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(4)"-->
  168. <!--v-show="permission.hasPermission(`user/close-dec`)">按会员体系管理报单-->
  169. <!--</el-dropdown-item>-->
  170. <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(5)"-->
  171. <!--v-show="permission.hasPermission(`user/close-area-dec`)">按省份地区管理报单-->
  172. <!--</el-dropdown-item>-->
  173. <!--</el-dropdown-menu>-->
  174. <!--</el-dropdown>-->
  175. <el-button type="success" size="small" @click="handleExport"
  176. v-show="permission.hasPermission(`user/index-export`)">Export Excel
  177. </el-button>
  178. <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange"
  179. @current-change="handleCurrentChange"></pagination>
  180. </div>
  181. </div>
  182. <el-dialog :title="formModifyPassword.typeName" :visible.sync="dialogModifyPasswordVisible" width="50%">
  183. <el-form ref="form" :model="formModifyPassword" label-width="120px" class="form-dialog">
  184. <el-form-item label="type"><!-- 类型 -->
  185. <el-select v-model="formModifyPassword.passwordType" placeholder="Please select a type"><!-- 请选择类型 -->
  186. <el-option v-for="(item,key) in passwordType" :label="item.label" :value="item.type"
  187. :key="key"></el-option>
  188. </el-select>
  189. </el-form-item>
  190. <el-form-item label="password"><!-- 密码 -->
  191. <el-input placeholder="password" v-model="formModifyPassword.password"><!-- 密码 -->
  192. </el-input>
  193. </el-form-item>
  194. <!--<el-form-item label="备注">-->
  195. <!--<el-input type="text" :rows="2" placeholder="备注" v-model="formModifyPassword.remark">-->
  196. <!--</el-input>-->
  197. <!--</el-form-item>-->
  198. <el-form-item>
  199. <el-button type="primary" @click="handleModifyPasswordSubmit" :loading="submitPasswordButtonStat">Submit<!-- 提交 --></el-button>
  200. </el-form-item>
  201. </el-form>
  202. </el-dialog>
  203. <el-dialog :title="formModifyProfile.typeName" :visible.sync="dialogModifyProfileVisible" width="50%">
  204. <el-form ref="form" :model="formModifyProfile" label-width="120px" class="form-dialog">
  205. <el-form-item label="nation"><!-- 民族 -->
  206. <el-select v-model="formModifyProfile.nation" placeholder="Please select nationality"><!-- 请选择民族 -->
  207. <el-option v-for="(item,index) in allNation" :key="index" :label="item.name"
  208. :value="item.id"></el-option>
  209. </el-select>
  210. </el-form-item>
  211. <el-form-item label="Member name"><!-- 会员姓名 -->
  212. <el-input v-model="formModifyProfile.realName"></el-input>
  213. </el-form-item>
  214. <el-form-item label="ID"><!-- 身份证号 -->
  215. <el-input v-model="formModifyProfile.idCard"></el-input>
  216. </el-form-item>
  217. <el-form-item label="phone number"><!-- 手机号 -->
  218. <el-input v-model="formModifyProfile.mobile"></el-input>
  219. </el-form-item>
  220. <el-form-item label="Bank name"><!-- 银行名称 -->
  221. <el-select v-model="formModifyProfile.openBank" placeholder="Please select a bank name"><!-- 请选择银行名称 -->
  222. <el-option v-for="(item,index) in allOpenBank" :key="index" :label="item.BANK_NAME"
  223. :value="item.BANK_CODE"></el-option>
  224. </el-select>
  225. </el-form-item>
  226. <el-form-item label="Bank Address"><!-- 开户行地址 -->
  227. <el-input v-model="formModifyProfile.bankAddress"></el-input>
  228. </el-form-item>
  229. <el-form-item label="Bank account number"><!-- 银行帐号 -->
  230. <el-input v-model="formModifyProfile.bankNo"></el-input>
  231. </el-form-item>
  232. <el-form-item>
  233. <el-button type="primary" @click="handleModifyProfileSubmit" :loading="submitProfileButtonStat">Submit<!-- 提交 --></el-button>
  234. </el-form-item>
  235. </el-form>
  236. </el-dialog>
  237. </div>
  238. </template>
  239. <script>
  240. import network from './../../utils/network'
  241. import tool from './../../utils/tool'
  242. import {FRONTEND_SERVER} from '@/utils/config'
  243. import baseInfo from '@/utils/baseInfo'
  244. import FilterUser from '../../components/FilterUser'
  245. import store from './../../utils/vuexStore'
  246. import permission from '@/utils/permission'
  247. import Pagination from '@/components/Pagination'
  248. import filterHelper from '../../utils/filterHelper'
  249. export default {
  250. name: 'user_index',
  251. components: {FilterUser, Pagination},
  252. mounted() {
  253. let _this = this
  254. if (permission.hasPermission(`user/close-login`) || permission.hasPermission(`user/close-area-login`) || permission.hasPermission(`user/batch-close-login`)) {
  255. network.getData('user/close-login-get').then(response => {
  256. _this.apps = response.apps
  257. _this.closeSwitch = response.closeSwitch
  258. if (permission.hasPermission(`user/close-dec`) || permission.hasPermission(`user/close-area-dec`) || permission.hasPermission(`user/batch-close-dec`)) {
  259. network.getData('user/close-dec-get').then(response => {
  260. _this.closeDecSwitch = response.closeSwitch
  261. _this.getData()
  262. }).catch(error => {
  263. })
  264. } else {
  265. _this.getData()
  266. }
  267. }).catch(error => {
  268. })
  269. } else {
  270. if (permission.hasPermission(`user/close-dec`) || permission.hasPermission(`user/close-area-dec`) || permission.hasPermission(`user/batch-close-dec`)) {
  271. network.getData('user/close-dec-get').then(response => {
  272. _this.closeDecSwitch = response.closeSwitch
  273. _this.getData()
  274. }).catch(error => {
  275. })
  276. } else {
  277. _this.getData()
  278. }
  279. }
  280. store.state.socket.onMessageCallback = this.onMessageCallback
  281. },
  282. data() {
  283. return {
  284. tableHeaders: null,
  285. tableData: null,
  286. loading: true,
  287. multipleSelection: [],
  288. currentPage: 1,
  289. totalPages: 1,
  290. totalCount: 1,
  291. pageSize: 20,
  292. frontendServer: FRONTEND_SERVER,
  293. baseDecLevels: baseInfo.decLevels(),
  294. baseEmpLevels: baseInfo.empLevels(),
  295. tool: tool,
  296. permission: permission,
  297. filterTypes: null,
  298. filterModel: {},
  299. dialogVisible: false,
  300. formCloseLogin: {
  301. userName: null,
  302. typeName: 'Login management',//登录管理
  303. type: null,
  304. isClose: 0,
  305. remark: '',
  306. areaSelected: null,
  307. },
  308. regionDataPlus: store.state.regionInfo.regionData,
  309. apps: null,
  310. closeSwitch: null,
  311. submitButtonStat: false,
  312. dialogDecVisible: false,
  313. dialogModifyPasswordVisible: false,
  314. dialogModifyProfileVisible: false,
  315. formCloseDec: {
  316. userName: null,
  317. typeName: 'Manage entry',//管理报单
  318. type: null,
  319. isClose: 0,
  320. remark: '',
  321. areaSelected: null,
  322. },
  323. formModifyPassword: {
  324. userId:'',
  325. password: '',
  326. typeName: 'Change Password',//修改密码
  327. passwordType: 'password',
  328. // remark: '',
  329. },
  330. formModifyProfile: {
  331. userId:'',
  332. typeName: 'Modify personal data',//修改个人资料
  333. nation: '',
  334. realName: '',
  335. idCard: '',
  336. mobile: '',
  337. openBank: '',
  338. bankAddress: '',
  339. bankNo: '',
  340. },
  341. passwordType: [
  342. {
  343. type:"password",
  344. label:"login password"//登录密码
  345. },
  346. {
  347. type:"payPassword",
  348. label:"Payment password"//支付密码
  349. },
  350. ],
  351. allOpenBank:null,
  352. allNation:null,
  353. submitDecButtonStat: false,
  354. submitPasswordButtonStat: false,
  355. submitProfileButtonStat: false,
  356. transferPropForm: {
  357. userIds: [],
  358. allowTransfer: true,
  359. transferProp: 100,
  360. withdrawProp: 0,
  361. remark: '',
  362. },
  363. closeUserData: null,
  364. }
  365. },
  366. methods: {
  367. handleSelectionChange(val) {
  368. this.multipleSelection = val
  369. },
  370. handleCurrentChange(page) {
  371. this.getData(page, this.pageSize)
  372. },
  373. handleSizeChange(pageSize) {
  374. this.getData(this.currentPage, pageSize)
  375. },
  376. handleAdd() {
  377. this.$router.push('/user/user-add')
  378. },
  379. handleFilterUser(filterData) {
  380. filterHelper.handleFilterUser(this, filterData)
  381. },
  382. handleFilter() {
  383. this.getData()
  384. },
  385. getData(page, pageSize, isLoading = true) {
  386. network.getPageData(this, 'user/index', page, pageSize, this.filterModel, response => {
  387. this.filterTypes = response.filterTypes
  388. }, isLoading)
  389. },
  390. handleGroupManage(isGroup) {
  391. if (this.multipleSelection.length < 1) {
  392. this.$message({
  393. message: 'Please check the member to be operated',//请勾选要操作的会员
  394. type: 'warning'
  395. })
  396. return
  397. }
  398. let groupTip = isGroup === true ? 'Set as team leader' : 'Cancel team leader' //'设为团队领导人' : '取消团队领导人'
  399. this.$confirm(`Are you sure you want to【${groupTip}】?`, 'Hint', {//`确定要对所选会员【${groupTip}】吗?`, '提示'
  400. confirmButtonText: 'confirm',//确定
  401. cancelButtonText: 'cancel',//取消
  402. type: 'warning'
  403. }).then(() => {
  404. let selectedIds = []
  405. for (let val of this.multipleSelection) {
  406. selectedIds.push(val.USER_ID)
  407. }
  408. return network.postData(`user/is-group`, {userIds: selectedIds, isGroup: isGroup})
  409. }).then(response => {
  410. this.$message({
  411. message: response,
  412. type: 'success'
  413. })
  414. this.getData(this.currentPage, this.pageSize)
  415. }).catch(response => {
  416. })
  417. },
  418. handleIsDecManage(isDec) {
  419. if (this.multipleSelection.length < 1) {
  420. this.$message({
  421. message: 'Please check the member to be operated',//请勾选要操作的会员
  422. type: 'warning'
  423. })
  424. return
  425. }
  426. let isDecTip = isDec === true ? 'Set as declaration Center' : 'Cancel entry Center'//'设为报单中心' : '取消报单中心'
  427. this.$confirm(`Are you sure you want to【${isDecTip}】?`, 'Hint', {//确定要对所选会员【${isDecTip}】吗?`, '提示'
  428. confirmButtonText: 'confirm',//确定
  429. cancelButtonText: 'cancel',//取消
  430. type: 'warning'
  431. }).then(() => {
  432. let selectedIds = []
  433. for (let val of this.multipleSelection) {
  434. selectedIds.push(val.USER_ID)
  435. }
  436. return network.postData(`user/is-dec`, {userIds: selectedIds, isDec: isDec})
  437. }).then(response => {
  438. this.$message({
  439. message: response,
  440. type: 'success'
  441. })
  442. this.getData(this.currentPage, this.pageSize)
  443. }).catch(response => {
  444. })
  445. },
  446. handleIsStudioManage(isStudio) {
  447. if (this.multipleSelection.length < 1) {
  448. this.$message({
  449. message: 'Please check the member to be operated',//请勾选要操作的会员
  450. type: 'warning'
  451. })
  452. return
  453. }
  454. let isStudioTip = isStudio === true ? 'Set as studio' : 'Cancel room'//'设为工作室' : '取消工作室'
  455. this.$confirm(`Are you sure you want to【${isStudioTip}】?`, 'Hint', {
  456. confirmButtonText: 'confirm',//确定
  457. cancelButtonText: 'cancel',//取消
  458. type: 'warning'
  459. }).then(() => {
  460. let selectedIds = []
  461. for (let val of this.multipleSelection) {
  462. selectedIds.push(val.USER_ID)
  463. }
  464. return network.postData(`user/is-studio`, {userIds: selectedIds, isStudio: isStudio})
  465. }).then(response => {
  466. this.$message({
  467. message: response,
  468. type: 'success'
  469. })
  470. this.getData(this.currentPage, this.pageSize)
  471. }).catch(response => {
  472. })
  473. },
  474. handleIsAtlasManage(isAtlas) {
  475. if (this.multipleSelection.length < 1) {
  476. this.$message({
  477. message: 'Please check the member to be operated',//请勾选要操作的会员
  478. type: 'warning'
  479. })
  480. return
  481. }
  482. let isAtlasTip = isAtlas === true ? 'Display Atlas' : 'Hidden Atlas'//'显示图谱' : '隐藏图谱'
  483. this.$confirm(`Are you sure you want to【${isAtlasTip}】?`, 'Hint', {//`确定要对所选会员【${isAtlasTip}】吗?`, '提示'
  484. confirmButtonText: 'confirm',//确定
  485. cancelButtonText: 'cancel',//取消
  486. type: 'warning'
  487. }).then(() => {
  488. let selectedIds = []
  489. for (let val of this.multipleSelection) {
  490. selectedIds.push(val.USER_ID)
  491. }
  492. return network.postData(`user/is-atlas`, {userIds: selectedIds, isAtlas: isAtlas})
  493. }).then(response => {
  494. this.$message({
  495. message: response,
  496. type: 'success'
  497. })
  498. this.getData(this.currentPage, this.pageSize)
  499. }).catch(response => {
  500. })
  501. },
  502. handleIsRechargeManage(isRecharge) {
  503. if (this.multipleSelection.length < 1) {
  504. this.$message({
  505. message: 'Please check the member to be operated',//请勾选要操作的会员
  506. type: 'warning'
  507. })
  508. return
  509. }
  510. let isRechargeTip = isRecharge === true ? 'Display recharge' : 'Hide recharge'// '显示充值' : '隐藏充值'
  511. this.$confirm(`Are you sure you want to【${isRechargeTip}】?`, 'Hint', {//`确定要对所选会员【${isRechargeTip}】吗?`, '提示'
  512. confirmButtonText: 'confirm',//确定
  513. cancelButtonText: 'cancel',//取消
  514. type: 'warning'
  515. }).then(() => {
  516. let selectedIds = []
  517. for (let val of this.multipleSelection) {
  518. selectedIds.push(val.USER_ID)
  519. }
  520. return network.postData(`user/is-recharge`, {userIds: selectedIds, isRecharge: isRecharge})
  521. }).then(response => {
  522. this.$message({
  523. message: response,
  524. type: 'success'
  525. })
  526. this.getData(this.currentPage, this.pageSize)
  527. }).catch(response => {
  528. })
  529. },
  530. getTypeName(type) {
  531. switch (type) {
  532. case 1:
  533. return 'By designated member'//按指定会员
  534. case 2:
  535. return 'Expand network by'//按开拓网络
  536. case 3:
  537. return 'By placement network'//按安置网络
  538. case 4:
  539. return 'By membership system'//按会员体系
  540. case 5:
  541. return 'By province and region'//按省份地区
  542. default:
  543. return ''
  544. }
  545. },
  546. handleLoginManage(type) {
  547. if (type === 2 || type === 3 || type === 4) {
  548. if (this.multipleSelection.length > 1) {
  549. this.$message({
  550. message: 'Multiple members are not allowed to be checked in this login management',//此登录管理不允许勾选多名会员
  551. type: 'warning'
  552. })
  553. return;
  554. } else if (this.multipleSelection.length < 1) {
  555. this.$message({
  556. message: 'Please select a member number',//请选择会员编号
  557. type: 'warning'
  558. })
  559. return;
  560. }
  561. }
  562. if (type === 1 && this.multipleSelection.length <= 0) {
  563. this.$message({
  564. message: 'Please select a member number',//请选择会员编号
  565. type: 'warning'
  566. })
  567. return;
  568. }
  569. if (type === 5 && this.multipleSelection.length > 0) {
  570. this.$message({
  571. message: 'Closing login by region without checking member',//按照地区关闭登录无需勾选会员
  572. type: 'warning'
  573. })
  574. return;
  575. }
  576. this.formCloseLogin = {
  577. userName: null,
  578. typeName: 'Login management',//登录管理
  579. type: null,
  580. isClose: 0,
  581. remark: '',
  582. areaSelected: null,
  583. },
  584. this.formCloseLogin.typeName = this.getTypeName(type) + 'Manage logins'//管理登录
  585. this.formCloseLogin.type = type
  586. this.dialogVisible = true
  587. },
  588. handleCloseLoginSubmit() {
  589. this.submitButtonStat = true
  590. // 获取所购选的会员,如果是批量关闭指定会员,则走批量关闭方法
  591. if (this.formCloseLogin.type === 1) {
  592. this.handleCloseLogin(this.formCloseLogin.isClose, this.formCloseLogin.remark)
  593. } else {
  594. for (let val of this.multipleSelection) {
  595. this.formCloseLogin.userName = val.USER_NAME.value
  596. }
  597. let path = 'user/close-login'
  598. if (this.formCloseLogin.type === 5) {
  599. path = 'user/close-area-login'
  600. }
  601. network.postData(path, this.formCloseLogin).then(response => {
  602. this.$message({
  603. message: response,
  604. type: 'success'
  605. })
  606. this.getData(this.currentPage, this.pageSize)
  607. this.submitButtonStat = false
  608. this.dialogVisible = false
  609. }).catch(response => {
  610. this.submitButtonStat = false
  611. })
  612. }
  613. },
  614. handleCloseLogin(isClose, remark = '') {
  615. let selectedIds = []
  616. for (let val of this.multipleSelection) {
  617. selectedIds.push(val.USER_ID)
  618. }
  619. console.log(selectedIds);
  620. network.postData(`user/batch-close-login`, {
  621. userIds: selectedIds,
  622. isClose: isClose,
  623. remark: remark,
  624. type: 1,
  625. }).then(response => {
  626. this.$message({
  627. message: response,
  628. type: 'success'
  629. })
  630. this.getData(this.currentPage, this.pageSize)
  631. this.submitButtonStat = false
  632. this.dialogVisible = false
  633. }).catch(response => {
  634. this.submitButtonStat = false
  635. })
  636. // let tipStr = isClose ? '禁止' : '允许'
  637. // this.$confirm(`确定要${tipStr}所选会员登录?`, '提示', {
  638. // confirmButtonText: '确定',
  639. // cancelButtonText: '取消',
  640. // type: 'warning'
  641. // }).then(() => {
  642. // return network.postData(`user/batch-close-login`, {userIds: selectedIds, isClose: isClose})
  643. // }).then(response => {
  644. // this.$message({
  645. // message: response,
  646. // type: 'success'
  647. // })
  648. // this.getData(this.currentPage, this.pageSize)
  649. // }).catch(response => {
  650. //
  651. // })
  652. },
  653. handleExport() {
  654. this.$confirm(`Are you sure you want to export the current data?`, 'Hint', {//(`确定要导出当前数据吗?`, '提示',
  655. confirmButtonText: 'confirm',//确定
  656. cancelButtonText: 'cancel',//取消
  657. type: 'warning'
  658. }).then(() => {
  659. return network.getData(`user/index-export`, this.filterModel)
  660. }).then(response => {
  661. this.$message({
  662. message: response,
  663. type: 'success'
  664. })
  665. }).catch(response => {
  666. })
  667. },
  668. onMessageCallback(data) {
  669. //this.getData(this.currentPage, this.pageSize, false)
  670. },
  671. handleDecManage(type) {
  672. if (type === 2 || type === 3 || type === 4) {
  673. if (this.multipleSelection.length > 1) {
  674. this.$message({
  675. message: 'Multiple members are not allowed to be checked in this entry management',//此报单管理不允许勾选多名会员
  676. type: 'warning'
  677. })
  678. return;
  679. } else if (this.multipleSelection.length < 1) {
  680. this.$message({
  681. message: 'Please check the member to manage the entry',//请勾选要管理报单的会员
  682. type: 'warning'
  683. })
  684. return;
  685. }
  686. }
  687. if (type === 1 && this.multipleSelection.length <= 0) {
  688. this.$message({
  689. message: 'Please check the member to manage the entry',//请勾选要管理报单的会员
  690. type: 'warning'
  691. })
  692. return;
  693. }
  694. if (type === 5 && this.multipleSelection.length > 0) {
  695. this.$message({
  696. message: 'Closing entry by region without checking member',//按照地区关闭报单无需勾选会员
  697. type: 'warning'
  698. })
  699. return;
  700. }
  701. this.formCloseDec = {
  702. userName: null,
  703. typeName: 'Manage entry',//管理报单
  704. type: null,
  705. isClose: 0,
  706. remark: '',
  707. areaSelected: null,
  708. },
  709. this.formCloseDec.typeName = this.getTypeName(type) + 'Manage entry',//管理报单
  710. this.formCloseDec.type = type
  711. this.dialogDecVisible = true
  712. },
  713. handleModifyPassword(row){
  714. this.formModifyPassword.userId = row.USER_ID;
  715. this.dialogModifyPasswordVisible = true
  716. },
  717. handleModifyProfile(row){
  718. this.dialogModifyProfileVisible = true
  719. let vueObj = this
  720. network.getData('user/profile-get', {id: row.USER_ID}).then(response => {
  721. vueObj.formModifyProfile = response.userInfo
  722. vueObj.allOpenBank = response.allOpenBank
  723. vueObj.allNation = response.allNation
  724. })
  725. },
  726. handleCloseDecSubmit() {
  727. this.submitDecButtonStat = true
  728. // 获取所购选的会员,如果是批量关闭指定会员,则走批量关闭方法
  729. if (this.formCloseDec.type === 1) {
  730. this.handleCloseDec(this.formCloseDec.isClose, this.formCloseDec.remark)
  731. } else {
  732. for (let val of this.multipleSelection) {
  733. this.formCloseDec.userName = val.USER_NAME.value
  734. }
  735. let path = 'user/close-dec'
  736. if (this.formCloseDec.type === 5) {
  737. path = 'user/close-area-dec'
  738. }
  739. network.postData(path, this.formCloseDec).then(response => {
  740. this.$message({
  741. message: response,
  742. type: 'success'
  743. })
  744. this.getData(this.currentPage, this.pageSize)
  745. this.submitDecButtonStat = false
  746. this.dialogDecVisible = false
  747. }).catch(response => {
  748. this.submitDecButtonStat = false
  749. })
  750. }
  751. },
  752. handleCloseDec(isClose, remark = '') {
  753. let selectedIds = []
  754. for (let val of this.multipleSelection) {
  755. selectedIds.push(val.USER_ID)
  756. }
  757. network.postData(`user/batch-close-dec`, {
  758. userIds: selectedIds,
  759. isClose: isClose,
  760. remark: remark,
  761. type: 1,
  762. }).then(response => {
  763. this.$message({
  764. message: response,
  765. type: 'success'
  766. })
  767. this.getData(this.currentPage, this.pageSize)
  768. this.submitDecButtonStat = false
  769. this.dialogDecVisible = false
  770. }).catch(response => {
  771. this.submitDecButtonStat = false
  772. })
  773. },
  774. handleStatusActive(row){
  775. network.postData('user/modify-status',{userId:row.USER_ID,status:1}).then(response=>{
  776. this.$message({
  777. message: response,
  778. type: 'success'
  779. })
  780. this.getData(this.currentPage, this.pageSize)
  781. })
  782. },
  783. handleStatusLock(row){
  784. network.postData('user/modify-status',{userId:row.USER_ID,status:0}).then(response=>{
  785. this.$message({
  786. message: response,
  787. type: 'success'
  788. })
  789. this.getData(this.currentPage, this.pageSize)
  790. })
  791. },
  792. handleIsModifyPassword(row, status){
  793. network.postData('user/is-modify-password-status',{userId:row.USER_ID,status:status}).then(response=>{
  794. this.$message({
  795. message: response,
  796. type: 'success'
  797. })
  798. this.getData(this.currentPage, this.pageSize)
  799. })
  800. },
  801. handleModifyPasswordSubmit() {
  802. this.submitPasswordButtonStat = true
  803. let path = 'user/modify-password'
  804. network.postData(path, this.formModifyPassword).then(response => {
  805. this.$message({
  806. message: response,
  807. type: 'success'
  808. })
  809. this.getData(this.currentPage, this.pageSize)
  810. this.submitPasswordButtonStat = false
  811. this.dialogModifyPasswordVisible = false
  812. }).catch(response => {
  813. this.submitPasswordButtonStat = false
  814. })
  815. },
  816. handleModifyProfileSubmit() {
  817. this.submitProfileButtonStat = true
  818. let path = 'user/modify-profile'
  819. network.postData(path, this.formModifyProfile).then(response => {
  820. this.$message({
  821. message: response,
  822. type: 'success'
  823. })
  824. this.getData(this.currentPage, this.pageSize)
  825. this.submitProfileButtonStat = false
  826. this.dialogModifyProfileVisible = false
  827. }).catch(response => {
  828. this.submitProfileButtonStat = false
  829. })
  830. },
  831. }
  832. }
  833. </script>