|
@@ -50,29 +50,64 @@
|
|
<el-form ref="addMemberForm" :model="addMemberForm" :rules="addMemberRules" label-width="125px" class="formwrap">
|
|
<el-form ref="addMemberForm" :model="addMemberForm" :rules="addMemberRules" label-width="125px" class="formwrap">
|
|
<el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item :label="this.$t('member.face')">
|
|
|
|
- <el-upload
|
|
|
|
- class="avatar-uploader"
|
|
|
|
- :action="`${uploadurl}?scene=avatar`"
|
|
|
|
- :show-file-list="false"
|
|
|
|
- :on-success="uploaded"
|
|
|
|
- :before-upload="handleShopLogoBefore"
|
|
|
|
|
|
+
|
|
|
|
+ <el-form-item :label="this.$t('member.mobile')" prop="mobile">
|
|
|
|
+<!-- <el-select v-model="addMemberForm.mobile" style="width: 100%;" @change="userSelected" filterable-->
|
|
|
|
+<!-- remote-->
|
|
|
|
+<!-- :remote-method="remoteMethod"-->
|
|
|
|
+<!-- :loading="loading" placeholder="输入用户名或手机号搜索" clearable>-->
|
|
|
|
+<!-- <el-option-->
|
|
|
|
+<!-- v-for="(item,index) in searchUser"-->
|
|
|
|
+<!-- :key="index"-->
|
|
|
|
+<!-- :label="item.name"-->
|
|
|
|
+<!-- :value="item.name">-->
|
|
|
|
+<!-- <span style="float: left">{{ item.name }}</span>-->
|
|
|
|
+<!-- <span style="float: right; color: #8492a6; font-size: 13px">{{ item.mobile }}</span>-->
|
|
|
|
+<!-- </el-option>-->
|
|
|
|
+<!-- </el-select>-->
|
|
|
|
+<!-- <el-input v-model.number="addMemberForm.mobile" :maxlength="11" />-->
|
|
|
|
+ <el-autocomplete
|
|
|
|
+ class="inline-input"
|
|
|
|
+ popper-class="my-autocomplete"
|
|
|
|
+ v-model="addMemberForm.mobile"
|
|
|
|
+ :fetch-suggestions="querySearch"
|
|
|
|
+ value-key="mobile"
|
|
|
|
+ placeholder="请输入内容"
|
|
|
|
+ @select="handleSelect"
|
|
|
|
+ :disabled="autoCompleteDisabled"
|
|
>
|
|
>
|
|
- <img v-if="imageUrl" :src="imageUrl" class="avatar">
|
|
|
|
- <i v-else class="el-icon-plus avatar-uploader-icon" />
|
|
|
|
- </el-upload>
|
|
|
|
|
|
+ <template slot-scope="{ item }" class="abc">
|
|
|
|
+ <div class="name">{{ item.mobile }}</div>
|
|
|
|
+ <span class="addr">{{ item.uname }}</span>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ </el-autocomplete>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
+
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
<el-form-item :label="this.$t('member.uname')" prop="uname">
|
|
<el-form-item :label="this.$t('member.uname')" prop="uname">
|
|
- <el-input v-model="addMemberForm.uname" :maxlength="20" />
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item :label="this.$t('member.password')" prop="password">
|
|
|
|
- <el-input v-model="addMemberForm.password" :type="pwdType" :maxlength="20" />
|
|
|
|
- <span class="show-pwd" @click="pwdType = pwdType === 'password' ? 'text' : 'password'">
|
|
|
|
- <svg-icon :icon-class="pwdType === 'password' ? 'eye' : 'eye-open'" />
|
|
|
|
- </span>
|
|
|
|
|
|
+
|
|
|
|
+ <el-autocomplete
|
|
|
|
+ class="inline-input"
|
|
|
|
+ popper-class="my-autocomplete"
|
|
|
|
+ v-model="addMemberForm.uname"
|
|
|
|
+ :fetch-suggestions="querySearch"
|
|
|
|
+ value-key="mobile"
|
|
|
|
+ placeholder="请输入内容"
|
|
|
|
+ @select="handleSelect"
|
|
|
|
+ :disabled="autoCompleteDisabled"
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="{ item }" class="abc">
|
|
|
|
+ <div class="name">{{ item.uname }}</div>
|
|
|
|
+ <span class="addr">{{ item.mobile }}</span>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ </el-autocomplete>
|
|
|
|
+
|
|
|
|
+<!-- <el-input v-model="addMemberForm.uname" :maxlength="20" />-->
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
|
|
|
|
@@ -81,19 +116,52 @@
|
|
<el-form-item :label="this.$t('member.nickname')" prop="nickname">
|
|
<el-form-item :label="this.$t('member.nickname')" prop="nickname">
|
|
<el-input v-model="addMemberForm.nickname" :maxlength="20" />
|
|
<el-input v-model="addMemberForm.nickname" :maxlength="20" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+
|
|
|
|
+ <el-form-item :label="this.$t('member.password')" prop="password">
|
|
|
|
+ <el-input v-model="addMemberForm.password" :type="pwdType" :maxlength="20" />
|
|
|
|
+ <span class="show-pwd" @click="pwdType = pwdType === 'password' ? 'text' : 'password'">
|
|
|
|
+ <svg-icon :icon-class="pwdType === 'password' ? 'eye' : 'eye-open'" />
|
|
|
|
+ </span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item :label="this.$t('member.sex')" class="form-item-sex">
|
|
|
|
+ <el-radio v-model="addMemberForm.sex" :label="1">{{ this.$t('member.man') }}</el-radio>
|
|
|
|
+ <el-radio v-model="addMemberForm.sex" :label="0">{{ this.$t('member.woman') }}</el-radio>
|
|
|
|
+ </el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item :label="this.$t('member.mobile')" prop="mobile">
|
|
|
|
- <el-input v-model.number="addMemberForm.mobile" :maxlength="11" />
|
|
|
|
|
|
+
|
|
|
|
+ <el-form-item :label="this.$t('member.face')">
|
|
|
|
+ <el-upload
|
|
|
|
+ class="avatar-uploader"
|
|
|
|
+ :action="`${uploadurl}?scene=avatar`"
|
|
|
|
+ :show-file-list="false"
|
|
|
|
+ :on-success="uploaded"
|
|
|
|
+ :before-upload="handleShopLogoBefore"
|
|
|
|
+ >
|
|
|
|
+ <img v-if="imageUrl" :src="imageUrl" class="avatar">
|
|
|
|
+ <i v-else class="el-icon-plus avatar-uploader-icon" />
|
|
|
|
+ </el-upload>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
|
|
|
|
<el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item :label="this.$t('member.sex')" class="form-item-sex">
|
|
|
|
- <el-radio v-model="addMemberForm.sex" :label="1">{{ this.$t('member.man') }}</el-radio>
|
|
|
|
- <el-radio v-model="addMemberForm.sex" :label="0">{{ this.$t('member.woman') }}</el-radio>
|
|
|
|
|
|
+ <el-form-item :label="this.$t('clerkManage.role')" prop="role_id">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="addMemberForm.role_id"
|
|
|
|
+ :placeholder="this.$t('clerkManage.choiceRole')"
|
|
|
|
+ :disabled="roleTypeDisabled"
|
|
|
|
+ clearable
|
|
|
|
+ >
|
|
|
|
+
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in rolesOptions"
|
|
|
|
+ :key="item.role_id"
|
|
|
|
+ :label="item.role_name"
|
|
|
|
+ :value="item.role_id"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
@@ -121,22 +189,7 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item :label="this.$t('clerkManage.role')" prop="role_id">
|
|
|
|
- <el-select
|
|
|
|
- v-model="addMemberForm.role_id"
|
|
|
|
- :placeholder="this.$t('clerkManage.choiceRole')"
|
|
|
|
- :disabled="roleTypeDisabled"
|
|
|
|
- clearable
|
|
|
|
- >
|
|
|
|
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in rolesOptions"
|
|
|
|
- :key="item.role_id"
|
|
|
|
- :label="item.role_name"
|
|
|
|
- :value="item.role_id"
|
|
|
|
- />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row>
|
|
<el-row>
|
|
@@ -232,6 +285,7 @@ import {ROLE_TYPE} from "@/utils/enum/RoleTypeEnum";
|
|
import ButtonCellRenderList from "@/components/AgGridCellRender/ButtonCellRenderList";
|
|
import ButtonCellRenderList from "@/components/AgGridCellRender/ButtonCellRenderList";
|
|
let prevOverflow = ''
|
|
let prevOverflow = ''
|
|
const serverUrl = domain.serverUrl
|
|
const serverUrl = domain.serverUrl
|
|
|
|
+import * as API_Member from '@/api/ncs_member'
|
|
export default {
|
|
export default {
|
|
name: 'CareDoctorManager',
|
|
name: 'CareDoctorManager',
|
|
components: { ButtonCellRenderList, ButtonCellRender, AgGridImg, ImageViewer, RadioFilter,ListFilter },
|
|
components: { ButtonCellRenderList, ButtonCellRender, AgGridImg, ImageViewer, RadioFilter,ListFilter },
|
|
@@ -254,11 +308,21 @@ export default {
|
|
loading: false,
|
|
loading: false,
|
|
/** 列表参数 */
|
|
/** 列表参数 */
|
|
params: {
|
|
params: {
|
|
- page_size: 10,
|
|
|
|
|
|
+ page_size: 20,
|
|
page_no: 1,
|
|
page_no: 1,
|
|
|
|
+ fixedCondition: 'user_state=0',
|
|
sort: 'member_id',
|
|
sort: 'member_id',
|
|
dir: 'asc'
|
|
dir: 'asc'
|
|
},
|
|
},
|
|
|
|
+
|
|
|
|
+ /** 列表参数 */
|
|
|
|
+ paramsmember: {
|
|
|
|
+ page_size: 20,
|
|
|
|
+ page_no: 1,
|
|
|
|
+ sort: 'member_id',
|
|
|
|
+ dir: 'desc'
|
|
|
|
+ },
|
|
|
|
+ autoCompleteDisabled:false,
|
|
/** 列表数据 */
|
|
/** 列表数据 */
|
|
tableData: [],
|
|
tableData: [],
|
|
pageData: [],
|
|
pageData: [],
|
|
@@ -349,7 +413,7 @@ export default {
|
|
} else {
|
|
} else {
|
|
this.shopId = val
|
|
this.shopId = val
|
|
}
|
|
}
|
|
- this.params.fixedCondition = this.part_view ? 'shop_id=' + this.shopId : '1 = 1'
|
|
|
|
|
|
+ this.params.fixedCondition = this.part_view ? 'shop_id=' + this.shopId+' and user_state=0' : 'user_state = 0'
|
|
this.GET_MemberList()
|
|
this.GET_MemberList()
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -402,7 +466,7 @@ export default {
|
|
filter: false,
|
|
filter: false,
|
|
pinned: 'right',
|
|
pinned: 'right',
|
|
lockPinned: true,
|
|
lockPinned: true,
|
|
- width: 160,
|
|
|
|
|
|
+ width: 100,
|
|
resizable: false,
|
|
resizable: false,
|
|
sortable: false
|
|
sortable: false
|
|
},
|
|
},
|
|
@@ -423,7 +487,7 @@ export default {
|
|
resizable: false,
|
|
resizable: false,
|
|
filter: false,
|
|
filter: false,
|
|
sortable: false,
|
|
sortable: false,
|
|
- hide: this.part_view
|
|
|
|
|
|
+ // hide: this.part_view
|
|
}
|
|
}
|
|
// { headerName: this.$t('action.handle'), field: 'id',
|
|
// { headerName: this.$t('action.handle'), field: 'id',
|
|
// cellRendererFramework: 'ButtonCellRenderList',
|
|
// cellRendererFramework: 'ButtonCellRenderList',
|
|
@@ -477,7 +541,7 @@ export default {
|
|
} else {
|
|
} else {
|
|
this.shopId = this.partId
|
|
this.shopId = this.partId
|
|
}
|
|
}
|
|
- this.params.fixedCondition = this.part_view ? 'shop_id=' + this.shopId : '1 = 1'
|
|
|
|
|
|
+ this.params.fixedCondition = this.part_view ? 'shop_id=' + this.shopId +' and user_state=0': 'user_state=0'
|
|
this.GET_MemberList()
|
|
this.GET_MemberList()
|
|
this.getRoles({ page_size: 200, page_no: 1, fixedCondition: ' shop_id = -1', sort: ' role_id', dir: 'desc' })
|
|
this.getRoles({ page_size: 200, page_no: 1, fixedCondition: ' shop_id = -1', sort: ' role_id', dir: 'desc' })
|
|
|
|
|
|
@@ -625,7 +689,7 @@ export default {
|
|
params.face = this.imageUrl
|
|
params.face = this.imageUrl
|
|
}
|
|
}
|
|
params.role_name = this.rolesOptions.filter( p => p.role_id === params.role_id)[0].role_name
|
|
params.role_name = this.rolesOptions.filter( p => p.role_id === params.role_id)[0].role_name
|
|
- if (params.member_id) {
|
|
|
|
|
|
+ if (params.clerk_id) {
|
|
// if (this.roleZzId === params.role_id) {
|
|
// if (this.roleZzId === params.role_id) {
|
|
// const addIds = this.newCheckList.filter(function(val) { return _this.oldCheckList.indexOf(val) === -1 })
|
|
// const addIds = this.newCheckList.filter(function(val) { return _this.oldCheckList.indexOf(val) === -1 })
|
|
// const delIds = this.oldCheckList.filter(function(val) { return _this.newCheckList.indexOf(val) === -1 })
|
|
// const delIds = this.oldCheckList.filter(function(val) { return _this.newCheckList.indexOf(val) === -1 })
|
|
@@ -657,6 +721,7 @@ export default {
|
|
},
|
|
},
|
|
/** 添加会员 */
|
|
/** 添加会员 */
|
|
handleAddMember() {
|
|
handleAddMember() {
|
|
|
|
+ this.autoCompleteDisabled=false
|
|
this.nurseList = []
|
|
this.nurseList = []
|
|
this.imageUrl = null
|
|
this.imageUrl = null
|
|
this.addMemberForm = { sex: 1 }
|
|
this.addMemberForm = { sex: 1 }
|
|
@@ -666,7 +731,9 @@ export default {
|
|
},
|
|
},
|
|
/** 编辑用户 */
|
|
/** 编辑用户 */
|
|
handlerEdit(row) {
|
|
handlerEdit(row) {
|
|
|
|
+ this.autoCompleteDisabled=true
|
|
this.addMemberForm = Object.assign({}, row)
|
|
this.addMemberForm = Object.assign({}, row)
|
|
|
|
+
|
|
this.nurseList = []
|
|
this.nurseList = []
|
|
if (this.roleZzId && this.roleZzId === row.role_id) { // 只有护士组长才能编辑小组成员
|
|
if (this.roleZzId && this.roleZzId === row.role_id) { // 只有护士组长才能编辑小组成员
|
|
this.getNurseByRoleId(row.member_id)
|
|
this.getNurseByRoleId(row.member_id)
|
|
@@ -824,6 +891,23 @@ export default {
|
|
delete this.params.dir
|
|
delete this.params.dir
|
|
}
|
|
}
|
|
this.GET_MemberList()
|
|
this.GET_MemberList()
|
|
|
|
+ },
|
|
|
|
+ querySearch(queryString, cb) {
|
|
|
|
+ API_Member.getList({...this.paramsmember,query:queryString}).then(res=>{
|
|
|
|
+ cb(res.data)
|
|
|
|
+ console.log(res)
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ handleSelect(item) {
|
|
|
|
+ const {member_id,uname,sex,birthday,mobile,face,midentity,nickname,address} =item
|
|
|
|
+ this.addMemberForm={...this.addMemberForm,member_id,uname,sex,birthday,mobile,face,midentity,nickname,address}
|
|
|
|
+ if (birthday) {
|
|
|
|
+ this.addMemberForm.birthday *= 1000
|
|
|
|
+ }
|
|
|
|
+ if(member_id){
|
|
|
|
+ this.addMemberRules.password[0].required = false
|
|
|
|
+ }
|
|
|
|
+ console.log(item);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -875,6 +959,9 @@ export default {
|
|
text-align: center;
|
|
text-align: center;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ /deep/ .el-select,.el-autocomplete{
|
|
|
|
+ width:100%;
|
|
|
|
+ }
|
|
|
|
|
|
.el-tag + .el-tag {
|
|
.el-tag + .el-tag {
|
|
margin-left: 10px;
|
|
margin-left: 10px;
|
|
@@ -908,4 +995,31 @@ export default {
|
|
display: block;
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ .my-autocomplete li .name {
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ line-height: 20px !important;
|
|
|
|
+ }
|
|
|
|
+ .my-autocomplete li .addr {
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ color: #b4b4b4;
|
|
|
|
+ line-height: 20px !important;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .my-autocomplete li .highlighted .addr {
|
|
|
|
+ color: #ddd;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+</style>
|
|
|
|
+
|
|
|
|
+<style>
|
|
|
|
+ .my-autocomplete li{
|
|
|
|
+
|
|
|
|
+ line-height: normal;
|
|
|
|
+ padding: 7px;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|