You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

280 lines
13 KiB

4 years ago
  1. <template>
  2. <section>
  3. <el-row class="app-container">
  4. <el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input>
  5. <el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchMemMembers" icon="el-icon-search"></el-button>
  6. <!-- <el-button type="primary" @click="showAdd" icon="el-icon-plus">mem_member</el-button> -->
  7. <!-- <el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true">批量删除</el-button> -->
  8. </el-row>
  9. <el-row class="app-container">
  10. <!--列表 MemMember mem_member-->
  11. <el-table :max-height="tableHeight" :data="memMembers" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
  12. <!-- <el-table-column sortable type="selection" width="40"></el-table-column>
  13. <el-table-column sortable type="index" width="40"></el-table-column> -->
  14. <el-table-column sortable prop="headimgurl" label="头像" min-width="80" show-overflow-tooltip>
  15. <template slot-scope="scope">
  16. <span v-show="scope.row.headimgurl!=undefined && scope.row.headimgurl!=''"><img v-bind:src="scope.row.headimgurl"></span>
  17. <span v-show="scope.row.headimgurl==undefined || scope.row.headimgurl==''"><img src="../../../../assets/image/noImg.png"></span>
  18. </template>
  19. </el-table-column>
  20. <el-table-column sortable prop="userid" label="用户id" min-width="80" show-overflow-tooltip>
  21. <!-- <template slot-scope="scope">
  22. <el-button @click="showDetail(scope.row)" type="text" >{{scope.row.userid}}</el-button>
  23. </template> -->
  24. </el-table-column>
  25. <el-table-column sortable prop="unionid" label="全局唯一编号" min-width="80" show-overflow-tooltip></el-table-column>
  26. <el-table-column sortable prop="displayUserid" label="登录展示使用用户编号" min-width="80" show-overflow-tooltip></el-table-column>
  27. <!-- 是否被冻结0否1是 -->
  28. <el-table-column sortable prop="locked" label="是否被冻结" min-width="80" show-overflow-tooltip>
  29. <template slot-scope="scope">
  30. <span v-if="scope.row.locked=='1'"></span>
  31. <span v-if="scope.row.locked=='0'"></span>
  32. </template>
  33. </el-table-column>
  34. <el-table-column sortable prop="openRebate" label="是否开启会员权益" min-width="80" show-overflow-tooltip>
  35. <template slot-scope="scope">
  36. <span v-if="scope.row.openRebate=='1'"></span>
  37. <span v-if="scope.row.openRebate!='1'"></span>
  38. </template>
  39. </el-table-column>
  40. <el-table-column sortable prop="startdate" label="启用日期" min-width="80" show-overflow-tooltip></el-table-column>
  41. <el-table-column sortable prop="enddate" label="到期日期" min-width="80" show-overflow-tooltip></el-table-column>
  42. <el-table-column sortable prop="nickname" label="昵称" min-width="80" show-overflow-tooltip></el-table-column>
  43. <el-table-column sortable prop="username" label="用户名称" min-width="80" show-overflow-tooltip></el-table-column>
  44. <el-table-column sortable prop="sex" label="性别" min-width="80" show-overflow-tooltip>
  45. <template slot-scope="scope">
  46. <span v-if="scope.row.sex=='0'"></span>
  47. <span v-if="scope.row.sex=='1'"></span>
  48. <span v-if="scope.row.sex=='2'">保密</span>
  49. </template>
  50. </el-table-column>
  51. <!-- <el-table-column sortable prop="idCardNo" label="身份证号码" min-width="80" show-overflow-tooltip></el-table-column> -->
  52. <el-table-column sortable prop="birthday" label="生日" min-width="80" show-overflow-tooltip></el-table-column>
  53. <el-table-column sortable prop="phoneno" label="移动电话号码" min-width="80" show-overflow-tooltip></el-table-column>
  54. <el-table-column sortable prop="email" label="邮箱" min-width="80" show-overflow-tooltip></el-table-column>
  55. <!-- <el-table-column sortable prop="pwdtype" label="密码类型" min-width="80" show-overflow-tooltip>
  56. <template slot-scope="scope">
  57. <span v-if="scope.row.pwdtype=='1'">指纹</span>
  58. <span v-if="scope.row.pwdtype=='2'">密码</span>
  59. </template>
  60. </el-table-column>
  61. <el-table-column sortable prop="password" label="密码" min-width="80" show-overflow-tooltip></el-table-column>
  62. <el-table-column sortable prop="salt" label="盐值" min-width="80" show-overflow-tooltip></el-table-column>
  63. <el-table-column sortable prop="fgOne" label="指纹1" min-width="80" show-overflow-tooltip></el-table-column>
  64. <el-table-column sortable prop="fgTwo" label="指纹2" min-width="80" show-overflow-tooltip></el-table-column>
  65. <el-table-column sortable prop="fgThr" label="指纹3" min-width="80" show-overflow-tooltip></el-table-column> -->
  66. <!-- <el-table-column sortable prop="districtId" label="区县编号" min-width="80" show-overflow-tooltip></el-table-column> -->
  67. <el-table-column sortable prop="country" label="国家" min-width="80" show-overflow-tooltip></el-table-column>
  68. <el-table-column sortable prop="province" label="省份" min-width="80" show-overflow-tooltip></el-table-column>
  69. <el-table-column sortable prop="city" label="城市" min-width="80" show-overflow-tooltip></el-table-column>
  70. <el-table-column sortable prop="address" label="详细地址" min-width="80" show-overflow-tooltip></el-table-column>
  71. <el-table-column sortable prop="branchId" label="机构号" min-width="80" show-overflow-tooltip></el-table-column>
  72. <el-table-column sortable prop="shopId" label="商户编号" min-width="80" show-overflow-tooltip></el-table-column>
  73. <el-table-column sortable label="操作" min-width="100" fixed="right" show-overflow-tooltip>
  74. <template slot-scope="scope">
  75. <el-button v-loading="load.add" type="primary" @click.native="addSubmit(scope.row,scope.$index)" >添加</el-button>
  76. </template>
  77. </el-table-column>
  78. </el-table>
  79. <el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
  80. </el-row>
  81. </section>
  82. </template>
  83. <script>
  84. import util from '@/common/js/util';//全局公共库
  85. //import Sticky from '@/components/Sticky' // 粘性header组件
  86. //import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询
  87. // import { listMemMember, delMemMember, batchDelMemMember,editMemMember } from '@/api/mk/mem/memMember';
  88. import { selectByMemMember,addSubacctAddForm } from '@/api/mdp/sys/userTpa';
  89. // import { addUserTpa, } from '@/api/mdp/sys/userTpa';
  90. import { mapGetters } from 'vuex'
  91. export default {
  92. computed: {
  93. ...mapGetters([
  94. 'userInfo'
  95. ])
  96. },
  97. // fromMemMemberTagUserId from-mem-member-tag-user-id from-mem-member-location-user-id
  98. props:['visible','userTpa','branch','users'],
  99. watch: {
  100. 'userTpa':function( userTpa ) {
  101. this.addForm = userTpa;
  102. },
  103. 'visible':function(visible) {
  104. if(visible==true){
  105. //从新打开页面时某些数据需要重新加载,可以在这里添加
  106. console.log("visit---:MemMenmberMng")
  107. this.getMemMembers();
  108. }
  109. }
  110. },
  111. data() {
  112. return {
  113. filters: {
  114. key: ''
  115. },
  116. memMembers: [],//查询结果
  117. pageInfo:{//分页数据
  118. total:0,//服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算。
  119. pageSize:10,//每页数据
  120. // count:false,//是否需要重新计算总记录数
  121. pageNum:1,//当前页码、从1开始计算
  122. orderFields:['startdate'],//排序列 如 ['sex','student_id'],必须为数据库字段
  123. orderDirs:['desc']//升序 asc,降序desc 如 性别 升序、学生编号降序 ['asc','desc']
  124. },
  125. load:{ list: false, edit: false, del: false, add: false },//查询中...
  126. loading:false,
  127. sels: [],//列表选中数据
  128. options:{},//下拉选择框的所有静态数据 params=[{categoryId:'0001',itemCode:'sex'}] 返回结果 {'sex':[{optionValue:'1',optionName:'男',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'女',seqOrder:'2',fp:'',isDefault:'0'}]}
  129. //访问其他页面
  130. addFormVisible: false,//新增memMember界面是否显示
  131. //新增memMember界面初始化数据
  132. addForm:{unionid:'',displayUserid:'',userid:'',locked:'',startdate:'',nickname:'',username:'',phoneno:'',password:'',salt:'',pwdtype:'',headimgurl:'',country:'',city:'',province:'',address:'',sex:'',enddate:'',districtId:'',email:'',fgOne:'',fgTwo:'',fgThr:'',idCardNo:'',branchId:'',birthday:'',shopId:'',openRebate:''},
  133. //memMembers:{unionid:'',displayUserid:'',userid:'',locked:'',startdate:'',nickname:'',username:'',phoneno:'',password:'',salt:'',pwdtype:'',headimgurl:'',country:'',city:'',province:'',address:'',sex:'',enddate:'',districtId:'',email:'',fgOne:'',fgTwo:'',fgThr:'',idCardNo:'',branchId:'',birthday:'',shopId:'',openRebate:''},
  134. editFormVisible: false,//编辑界面是否显示
  135. //编辑memMember界面初始化数据,
  136. tableHeight:500,
  137. editForm:{unionid:'',displayUserid:'',userid:'',locked:'',startdate:'',nickname:'',username:'',phoneno:'',password:'',salt:'',pwdtype:'',headimgurl:'',country:'',city:'',province:'',address:'',sex:'',enddate:'',districtId:'',email:'',fgOne:'',fgTwo:'',fgThr:'',idCardNo:'',branchId:'',birthday:'',shopId:'',openRebate:''},
  138. }
  139. },//end data
  140. methods: {
  141. handleSizeChange(pageSize) {
  142. this.pageInfo.pageSize=pageSize;
  143. this.getMemMembers();
  144. },
  145. handleCurrentChange(pageNum) {
  146. this.pageInfo.pageNum = pageNum;
  147. this.getMemMembers();
  148. },
  149. // 表格排序 obj.order=ascending/descending,需转化为 asc/desc ; obj.prop=表格中的排序字段,字段驼峰命名
  150. sortChange( obj ){
  151. var dir='asc';
  152. if(obj.order=='ascending'){
  153. dir='asc'
  154. }else{
  155. dir='desc';
  156. }
  157. if(obj.prop=='xxx'){
  158. this.pageInfo.orderFields=['xxx'];
  159. this.pageInfo.orderDirs=[dir];
  160. }
  161. this.getMemMembers();
  162. },
  163. searchMemMembers(){
  164. this.pageInfo.count=true;
  165. this.getMemMembers();
  166. },
  167. //获取列表 MemMember mem_member
  168. getMemMembers() {
  169. let params = {
  170. branchId:this.branch.id,
  171. pageSize: this.pageInfo.pageSize,
  172. pageNum: this.pageInfo.pageNum,
  173. total: this.pageInfo.total,
  174. count:this.pageInfo.count
  175. };
  176. if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){
  177. let orderBys=[];
  178. for(var i=0;i<this.pageInfo.orderFields.length;i++){
  179. orderBys.push(this.pageInfo.orderFields[i]+" "+this.pageInfo.orderDirs[i])
  180. }
  181. params.orderBy= orderBys.join(",")
  182. }
  183. if(this.filters.key!==""){
  184. params.key="%"+this.filters.key+"%"
  185. }else{
  186. //params.xxx=xxxxx
  187. }
  188. this.load.list = true;
  189. console.log("查看memMember");
  190. console.log(params);
  191. selectByMemMember(params).then((res) => {
  192. var tips=res.data.tips;
  193. if(tips.isOk){
  194. console.log("res.data");
  195. console.log(res.data);
  196. this.pageInfo.total = res.data.total;
  197. this.pageInfo.count=false;
  198. this.memMembers = res.data.data;
  199. }else{
  200. this.$notify({ message: tips.msg, type: 'error' });
  201. }
  202. this.load.list = false;
  203. }).catch( err => this.load.list = false );
  204. },
  205. //选择行memMember
  206. selsChange: function (sels) {
  207. this.sels = sels;
  208. },
  209. rowClick: function(row, event, column){
  210. this.$emit('row-click',row, event, column);// @row-click="rowClick"
  211. },
  212. /**begin 自定义函数请在下面加**/
  213. // 取消按钮点击 父组件监听@cancel="addFormVisible=false" 监听
  214. handleCancel:function(){
  215. // this.$refs['addForm'].resetFields();
  216. this.$emit('cancel');
  217. },
  218. //新增提交UserTpa 第三方系统向我方开放的用户列表 父组件监听@submit="afterAddSubmit"
  219. addSubmit: function (row,index) {
  220. console.log("打印row");
  221. console.log(row);
  222. this.$confirm('确认提交吗?', '提示', {}).then(() => {
  223. this.load.add=true
  224. let params ={
  225. users:this.users,
  226. memMembers:Object.assign({}, row),
  227. };
  228. //
  229. console.log("查看params");
  230. console.log(params);
  231. addSubacctAddForm(params).then((res) => {
  232. this.load.add=false;
  233. var tips=res.data.tips;
  234. if( tips.isOk ){
  235. this.$emit('submit');
  236. }
  237. this.$notify({ message: tips.msg, type: tips.isOk?'success':'error'});
  238. });
  239. }).catch(() => this.load.add=false );
  240. },
  241. /**end 自定义函数请在上面加**/
  242. },//end methods
  243. components: {
  244. //在下面添加其它组件
  245. },
  246. mounted() {
  247. this.$nextTick(() => {
  248. this.tableHeight = window.innerHeight - 250;
  249. });
  250. this.$nextTick(() => {
  251. this.getMemMembers();
  252. });
  253. }
  254. }
  255. </script>
  256. <style scoped>
  257. img {
  258. border-style: none;
  259. height: 50px;
  260. }
  261. </style>