| | |
| | | VUE_APP_ROUTER_MODE = 'hash' |
| | | |
| | | # 项ç®ä¸ä¸æè·¯å¾ |
| | | VUE_APP_CONTEXT_PATH = './' |
| | | VUE_APP_CONTEXT_PATH = '/' |
| | | |
| | | # æ¥å£åç¼ |
| | | VUE_APP_API_PREFIX = '/' |
| | | VUE_APP_API_PREFIX = '/api' |
| | |
| | | # å¼åç¯å¢é
ç½® |
| | | NODE_ENV = 'development' |
| | | |
| | | VUE_APP_API = 'http://192.168.0.104:10023/' |
| | | # VUE_APP_API = 'http://192.168.0.104:10023/' |
| | | |
| | | # VUE_APP_API = 'http://192.168.0.134:10023/' |
| | | VUE_APP_API = 'http://192.168.0.134:10023/' |
| | |
| | | export function updateById (data) { |
| | | return request.post('/business/company/updateById', data) |
| | | } |
| | | |
| | | // æ¥è¯¢å
¨é¨æ°æ®(è´¦å·åé
ä¼ä¸ä½¿ç¨) |
| | | export function pageAll (data) { |
| | | return request.post('/business/company/pageAll', data) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // è´¦å·åé
ä¼ä¸ |
| | | export function create (data) { |
| | | return request.post('/business/companyPermission/create', data) |
| | | } |
| | |
| | | return request.post('/business/insurance/create', data) |
| | | } |
| | | |
| | | // æ¥è¯¢å
¨é¨ |
| | | export function all (data) { |
| | | return request.post('/business/insurance/list', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/insurance/updateById', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ç¶æ |
| | | export function updateStatus (data) { |
| | | return request.post('/business/insurance/updateStatus', data) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // åéçä¿¡éªè¯ç |
| | | export function sendSms (data) { |
| | | return request.post('/business/smsEmail/sendSms', data) |
| | | } |
| | |
| | | return request.post('/business/solutions/create', data) |
| | | } |
| | | |
| | | // æ¥è¯¢å
¨é¨ä¿é©æ¹æ¡ |
| | | export function all (data) { |
| | | return request.post('/business/solutions/list', data) |
| | | } |
| | | |
| | | // ç¦ç¨å¯ç¨ |
| | | export function updateStatus (data) { |
| | | return request.post('/business/solutions/updateStatus', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/solutions/updateById', data) |
| | | } |
| | | |
| | | // æ ¹æ®IDæ¥è¯¢ |
| | | export function solutionsId (id) { |
| | | return request.get(`/business/solutions/${id}`) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // 导å
¥æ¨¡æ¿ |
| | | export function importExcel (data) { |
| | | return request.post(`/business/worktype/importExcel`, data) |
| | | } |
| | | |
| | | // æ¥è¯¢å
¨é¨å·¥ç§ |
| | | export function all (data) { |
| | | return request.post(`/business/worktype/list`, data) |
| | | } |
| | |
| | | export function resetPwd (data) { |
| | | return request.post('/system/user/resetPwd', data) |
| | | } |
| | | |
| | | // éç½®å¯ç |
| | | export function updUserStatus (params) { |
| | | return request.get('/system/user/updUserStatus', {params}) |
| | | } |
| | |
| | | <el-form-item label="ç»ä¸ä¿¡ç¨ä»£ç " prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æ³äººå§å" prop="legalName"> |
| | | <el-input v-model="form.legalName" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»å®ææºå·" prop="phone"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-input v-model="form.phone" style="flex: 1;" placeholder="请è¾å
¥" v-trim/> |
| | | <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;">åééªè¯ç </el-button> |
| | | <el-input v-model="form.phone" maxlength="11" type="number" style="flex: 1;" placeholder="请è¾å
¥" v-trim/> |
| | | <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" @click="send" v-if="num === 0">åééªè¯ç </el-button> |
| | | <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" v-else>{{num}}s</el-button> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="éªè¯ç " prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥" v-trim/> |
| | | <el-form-item label="éªè¯ç " prop="captche"> |
| | | <el-input v-model="form.captche" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸è´¦å·" prop="taxAccount"> |
| | | <el-input v-model="form.taxAccount" placeholder="请è¾å
¥" v-trim/> |
| | | <el-form-item label="å
¬å¸è´¦å·" prop="username"> |
| | | <el-input v-model="form.username" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="认è¯é®ç®±" prop="email"> |
| | | <el-input v-model="form.email" placeholder="请è¾å
¥" v-trim/> |
| | |
| | | <el-form-item label="纳ç¨äººè¯å«å·" prop="taxCode"> |
| | | <el-input v-model="form.taxCode" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="é¶è¡è´¦å·" prop="taxBank"> |
| | | <el-input v-model="form.taxBank" placeholder="请è¾å
¥" v-trim/> |
| | | <el-form-item label="é¶è¡è´¦å·" prop="taxAccount"> |
| | | <el-input v-model="form.taxAccount" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="弿·è¡" prop="taxBank"> |
| | | <el-input v-model="form.taxBank" placeholder="请è¾å
¥" v-trim/> |
| | |
| | | <el-form-item label="纸质åç¥¨æ¥æ¶å°å" prop="invoiceAddr"> |
| | | <el-input v-model="form.invoiceAddr" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="è¥ä¸æ§ç
§" prop="invoiceAddr"> |
| | | <el-upload |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | list-type="picture-card" |
| | | :on-remove="handleRemove"> |
| | | <i class="el-icon-plus"></i> |
| | | </el-upload> |
| | | <el-form-item label="è¥ä¸æ§ç
§" prop="businessImg"> |
| | | <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="file" @uploadSuccess="result" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ³äººèº«ä»½è¯" prop="invoiceAddr"> |
| | | <el-upload |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | list-type="picture-card" |
| | | :on-remove="handleRemove"> |
| | | <i class="el-icon-plus"></i> |
| | | </el-upload> |
| | | <el-form-item label="æ³äººèº«ä»½è¯" prop="idcardImgList"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="file1" @uploadSuccess="result1" /> |
| | | <div style="width: 15px;height: 100%;"></div> |
| | | <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="file2" @uploadSuccess="result2" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="çµåç¾ç« " prop="invoiceAddr"> |
| | | <el-upload |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | list-type="picture-card" |
| | | :on-remove="handleRemove"> |
| | | <i class="el-icon-plus"></i> |
| | | </el-upload> |
| | | <el-form-item label="çµåç¾ç« " prop="signImg"> |
| | | <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="file3" @uploadSuccess="result3" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-button type="primary" style="margin-bottom: 15px;">æ·»å </el-button> |
| | | <el-button type="primary" style="margin-bottom: 15px;" @click="add">æ·»å </el-button> |
| | | <el-table |
| | | :data="tableData" |
| | | :data="form.solutionList" |
| | | border |
| | | style="width: 100%"> |
| | | <el-table-column |
| | |
| | | align="center" |
| | | label="ä¿é©æ¹æ¡"> |
| | | <template slot-scope="{row}"> |
| | | <el-select v-model="row.info" placeholder="è¯·éæ©"> |
| | | <el-select v-model="row.solutionBaseId" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | v-for="item in programme" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | |
| | | align="center" |
| | | label="å åä¿åè½"> |
| | | <template slot-scope="{row}"> |
| | | <el-checkbox-group v-model="row.type"> |
| | | <el-checkbox label="1">å ä¿</el-checkbox> |
| | | <el-checkbox label="2">åä¿</el-checkbox> |
| | | </el-checkbox-group> |
| | | <el-checkbox :true-label="1" :false-label="0" v-model="row.canAdd">å ä¿</el-checkbox> |
| | | <el-checkbox :true-label="1" :false-label="0" v-model="row.canReduce">åä¿</el-checkbox> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | align="center" |
| | | width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" style="color: red;">å é¤</el-button> |
| | | <el-button type="text" size="small" style="color: red;" @click="dele(scope.$index)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { all } from '@/api/business/solutions' |
| | | import { sendSms } from '@/api/business/smsEmail' |
| | | export default { |
| | | name: 'OperaCompanyWindow', |
| | | extends: BaseOpera, |
| | |
| | | id: null, |
| | | name: '', |
| | | code: '', |
| | | legalName: '', |
| | | taxCode: '', |
| | | taxAccount: '', |
| | | username: '', |
| | | taxBank: '', |
| | | taxAddr: '', |
| | | invoiceEmail: '', |
| | | invoiceAddr: '', |
| | | phone: '', |
| | | email: '' |
| | | email: '', |
| | | captche: '', |
| | | businessImg: { |
| | | fileurl: '', |
| | | name: '' |
| | | }, |
| | | idcardImgList: [], |
| | | signImg: { |
| | | fileurl: '', |
| | | name: '' |
| | | }, |
| | | solutionList: [ |
| | | { |
| | | solutionBaseId: '', |
| | | canAdd: 0, |
| | | canReduce: 0 |
| | | } |
| | | ] |
| | | }, |
| | | timer: null, |
| | | num: 0, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥å
¬å¸åç§°' } |
| | | ], |
| | | code: [ |
| | | { required: true, message: '请è¾å
¥ç»ä¸ä¿¡ç¨ä»£ç ' } |
| | | ], |
| | | captche: [ |
| | | { required: true, message: '请è¾å
¥éªè¯ç ' } |
| | | ], |
| | | legalName: [ |
| | | { required: true, message: '请è¾å
¥æ³äººå§å' } |
| | | ], |
| | | phone: [ |
| | | { required: true, message: '请è¾å
¥ææºå·' } |
| | | ], |
| | | taxAccount: [ |
| | | { required: true, message: '请è¾å
¥ææºå·' } |
| | | ], |
| | | email: [ |
| | | { required: true, message: '请è¾å
¥è®¤è¯é®ç®±' } |
| | | ], |
| | | businessImg: [ |
| | | { required: true, message: '请ä¸ä¼ è¥ä¸æ§ç
§' } |
| | | ], |
| | | idcardImgList: [ |
| | | { required: true, message: '请ä¸ä¼ æ³äººèº«ä»½è¯' } |
| | | ], |
| | | signImg: [ |
| | | { required: true, message: '请ä¸ä¼ çµåç¾ç« ' } |
| | | ], |
| | | username: [ |
| | | { required: true, message: '请è¾å
¥å
¬å¸è´¦å·' } |
| | | ] |
| | | }, |
| | | options: [], |
| | | tableData: [{ |
| | | type: [], |
| | | info: '' |
| | | }] |
| | | file: { |
| | | imgurl: '', |
| | | imgurlfull: '' |
| | | }, |
| | | file1: { |
| | | imgurl: '', |
| | | imgurlfull: '' |
| | | }, |
| | | file2: { |
| | | imgurl: '', |
| | | imgurlfull: '' |
| | | }, |
| | | file3: { |
| | | imgurl: '', |
| | | imgurlfull: '' |
| | | }, |
| | | programme: [] |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | watch: { |
| | | visible: { |
| | | handler(news) { |
| | | if (news) { |
| | | clearInterval(this.timer) |
| | | this.num = 0 |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | send() { |
| | | if (!this.form.phone) { |
| | | this.$message.warning('请è¾å
¥ææºå·') |
| | | return |
| | | } |
| | | sendSms({ phone: this.form.phone }) |
| | | .then(res => { |
| | | this.num = 60 |
| | | this.setTime() |
| | | }) |
| | | }, |
| | | setTime() { |
| | | this.timer = setInterval(() => { |
| | | this.num -= 1 |
| | | if (this.num === 0) { |
| | | clearInterval(this.timer) |
| | | this.num = 0 |
| | | } |
| | | }, 1000) |
| | | }, |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.getAll() |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | }) |
| | | }, |
| | | // è·åå
¨é¨æ¹æ¡ |
| | | getAll() { |
| | | all({}) |
| | | .then(res => { |
| | | this.programme = res |
| | | }) |
| | | }, |
| | | dele(index) { |
| | | if (this.form.solutionList.length === 1) { |
| | | this.$message.warning('è³å°ä¿çä¸é¡¹') |
| | | return |
| | | } |
| | | this.form.solutionList.splice(index, 1) |
| | | }, |
| | | add() { |
| | | this.form.solutionList.push({ |
| | | solutionName: '', |
| | | canAdd: '', |
| | | canReduce: '' |
| | | }) |
| | | }, |
| | | handleRemove(file, fileList) { |
| | | console.log(file, fileList); |
| | | }, |
| | | // æ¥æ¶è¥ä¸æ§ç
§æ°æ® |
| | | result(data) { |
| | | this.form.businessImg.fileurl = data.imgurl |
| | | this.form.businessImg.name = data.name |
| | | }, |
| | | // 身份è¯ç
§ç1 |
| | | result1(data) { |
| | | this.form.idcardImgList[0] = { fileurl: data.imgurl, name: data.name } |
| | | }, |
| | | // 身份è¯ç
§ç2 |
| | | result2(data) { |
| | | this.form.idcardImgList[1] = { fileurl: data.imgurl, name: data.name } |
| | | }, |
| | | // çµåç¾ç« |
| | | result3(data) { |
| | | this.form.signImg.fileurl = data.imgurl |
| | | this.form.signImg.name = data.name |
| | | } |
| | | } |
| | | } |
| | |
| | | submitText="ä¿®æ¹" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="$refs.operaInsuranceWindow.open('ç¼è¾ä¿é©å
¬å¸')" |
| | | @confirm="$refs.operaInsuranceWindow.open('ç¼è¾ä¿é©å
¬å¸', form)" |
| | | > |
| | | <div class="box"> |
| | | <div class="box_name"> |
| | | <span>ä¿é©å
¬å¸ï¼å¹³å®ä¿é©</span> |
| | | <span>æ¯å¦å¯ç¨ï¼æ¯</span> |
| | | <span>ä¿é©å
¬å¸ï¼{{form.name}}</span> |
| | | <span>æ¯å¦å¯ç¨ï¼{{form.status == 0 ? 'å¯ç¨' : 'ç¦ç¨'}}</span> |
| | | </div> |
| | | <el-table |
| | | :data="tableData" |
| | |
| | | </el-table> |
| | | </div> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaInsuranceWindow ref="operaInsuranceWindow" @success="handlePageChange"/> |
| | | <OperaInsuranceWindow ref="operaInsuranceWindow" @success="success"/> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import OperaInsuranceWindow from '@/components/business/OperaInsuranceWindow' |
| | | import { all } from '@/api/business/worktype' |
| | | export default { |
| | | name: 'OperaInsuranceDescWindow', |
| | | extends: BaseOpera, |
| | |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: '', |
| | | status: '' |
| | | }, |
| | | tableData: [] |
| | | } |
| | |
| | | api: '/business/insurance', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | all({ insuranceId: this.form.id }) |
| | | .then(res => { |
| | | let arr = [] |
| | | res.forEach(item => { |
| | | arr.push({ name: item.name }) |
| | | }) |
| | | this.tableData = arr |
| | | }) |
| | | }) |
| | | }, |
| | | success() { |
| | | this.$emit('success') |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <el-form-item label="ä¿é©å
¬å¸" prop="name"> |
| | | <el-input v-model="form.name" placeholder="å¹³å®ä¿é©" v-trim/> |
| | | </el-form-item> |
| | | <el-button type="primary" style="margin-bottom: 10px;">æ·»å </el-button> |
| | | <div style="width: 100%; display: flex; align-items: center;margin-bottom: 10px;"> |
| | | <el-button type="primary" @click="add">æ·»å </el-button> |
| | | <el-button type="primary" @click="impor">导å
¥å·¥ç§</el-button> |
| | | <el-button type="text" @click="exprot">导å
¥æ¨¡çxls</el-button> |
| | | </div> |
| | | <el-table |
| | | :data="tableData" |
| | | :data="form.worktypeList" |
| | | border |
| | | style="width: 100%; margin-bottom: 20px;"> |
| | | <el-table-column |
| | |
| | | align="center" |
| | | width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" style="color: red;">å é¤</el-button> |
| | | <el-button type="text" size="small" style="color: red;" @click="dele(scope.$index)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-form> |
| | | <!-- ä¸ä¼ å·¥ç§ --> |
| | | <input type="file" @change="getFile" style="opacity: 0;" ref="upload" accept=".xlsx" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { importExcel, all } from '@/api/business/worktype' |
| | | |
| | | export default { |
| | | name: 'OperaInsuranceWindow', |
| | | extends: BaseOpera, |
| | |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | name: '' |
| | | name: '', |
| | | worktypeList: [ |
| | | { name: '' } |
| | | ] |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | }, |
| | | tableData: [] |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | api: '/business/insurance', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | all({ insuranceId: this.form.id }) |
| | | .then(res => { |
| | | let arr = [] |
| | | res.forEach(item => { |
| | | arr.push({ name: item.name }) |
| | | }) |
| | | this.form.worktypeList = arr |
| | | }) |
| | | }) |
| | | }, |
| | | // å¯¼åºæ¨¡æ¿ |
| | | exprot() { |
| | | let a = document.createElement("a"); |
| | | a.href = '/public/file/typeWork.xlsx'; |
| | | a.download = 'ä¿é©å
¬å¸-å·¥ç§å¯¼å
¥æ¨¡ç.xlsx'; |
| | | a.click(); |
| | | }, |
| | | // 导å
¥å·¥ç§æ¨¡æ¿ |
| | | getFile(e) { |
| | | const formdate = new FormData() |
| | | formdate.append('file', e.target.files[0]) |
| | | importExcel(formdate) |
| | | .then(res => { |
| | | res.forEach(item => { |
| | | if (this.form.worktypeList.length === 0) { |
| | | this.form.worktypeList.push({ name: item }) |
| | | } else { |
| | | let next = true |
| | | this.form.worktypeList.forEach(row => { |
| | | if (row.name === item) { |
| | | next = false |
| | | } |
| | | }) |
| | | if (next) { |
| | | this.form.worktypeList.push({ name: item }) |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | .finally(() => { |
| | | this.$refs.upload.value = null |
| | | }) |
| | | }, |
| | | // ä¸ä¼ æä»¶ |
| | | impor() { |
| | | this.$refs.upload.click() |
| | | }, |
| | | add() { |
| | | this.form.worktypeList.push({ name: '' }) |
| | | }, |
| | | dele(index) { |
| | | if (this.form.worktypeList.length === 1) { |
| | | this.$message.warning('è³å°ä¿çä¸é¡¹å
容') |
| | | return |
| | | } |
| | | this.form.worktypeList.splice(index, 1) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | submitText="ä¿®æ¹" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="$refs.operaSolutionsWindow.open('ç¼è¾æ¹æ¡')" |
| | | @confirm="$refs.operaSolutionsWindow.open('ç¼è¾æ¹æ¡', form)" |
| | | > |
| | | <div class="info"> |
| | | <div class="info_list"> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">æ¹æ¡åç§°ï¼</div> |
| | | <div class="info_list_item_val">å¹³å®ä¿é©é主责任é©Aç</div> |
| | | <div class="info_list_item_val">{{form.name}}</div> |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">ä¿é©å
¬å¸ï¼</div> |
| | | <div class="info_list_item_val">å¹³å®ä¿é©</div> |
| | | <div class="info_list_item_val">{{form.insuranceName}}</div> |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">æ¿ä¿å
¬å¸ï¼</div> |
| | | <div class="info_list_item_val">å®å¾½å¹³å®ä¿é©æéå
¬å¸</div> |
| | | <div class="info_list_item_val">{{form.companyName}}</div> |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">æä¿å¹´é¾ï¼</div> |
| | | <div class="info_list_item_val">25è³65</div> |
| | | <div class="info_list_item_val">{{form.minAge}}è³{{form.maxAge}}</div> |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">æä¿ç±»åï¼</div> |
| | |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">ä¿é©è´¹ç¨ï¼</div> |
| | | <div class="info_list_item_val">200å
/人/年</div> |
| | | <div class="info_list_item_val"> |
| | | {{form.price}}å
/人/ |
| | | <span v-if="form.timeUnit === 0">天</span> |
| | | <span v-if="form.timeUnit === 1">åæ</span> |
| | | <span v-if="form.timeUnit === 2">æ</span> |
| | | <span v-if="form.timeUnit === 3">å¹´</span> |
| | | </div> |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">æä¿å¨æï¼</div> |
| | | <div class="info_list_item_val">1æ</div> |
| | | <div class="info_list_item_val"> |
| | | {{form.insureCycle}} |
| | | <span v-if="form.insureCycleUnit === 0">天</span> |
| | | <span v-if="form.insureCycleUnit === 1">åæ</span> |
| | | <span v-if="form.insureCycleUnit === 2">æ</span> |
| | | <span v-if="form.insureCycleUnit === 3">å¹´</span> |
| | | </div> |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">çææ¶é´ï¼</div> |
| | | <div class="info_list_item_val">1æ¥åçæ</div> |
| | | <div class="info_list_item_val">{{form.validType === 0 ? 'æ¥åçæ' : '次æçæ'}}</div> |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">æä¿ç±»åï¼</div> |
| | | <div class="info_list_item_val">ç´ä¿</div> |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">åç¬ææ´¾å·¥ç§ï¼</div> |
| | | <div class="info_list_item_val">å¦</div> |
| | | <div class="info_list_item_val">{{form.type === 0 ? 'ç´ä¿' : 'å§ææä¿'}}</div> |
| | | </div> |
| | | <div class="info_list_item"> |
| | | <div class="info_list_item_label">æ¥æ¶æä»¶é®ç®±ï¼</div> |
| | | <div class="info_list_item_val">111@163.com</div> |
| | | <div class="info_list_item_val">{{form.email}}</div> |
| | | </div> |
| | | </div> |
| | | <el-table |
| | | :data="tableData" |
| | | :data="form.worktypeList" |
| | | border |
| | | style="width: 100%; margin-bottom: 20px;"> |
| | | <el-table-column |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="code" |
| | | prop="worktypeName" |
| | | align="center" |
| | | label="æå±å·¥ç§"> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="info_fwb">坿æ¬å
容</div> |
| | | <div class="info_agree"> |
| | | <div class="info_agree_label">ä¿é©å£°æï¼</div> |
| | | <div class="info_agree_label">ç¹å«çº¦å®ï¼</div> |
| | | <div class="info_agree_val"> |
| | | {{form.specialAgreement}} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- ä¿®æ¹ --> |
| | | <OperaSolutionsWindow ref="operaSolutionsWindow" @success="handlePageChange"/> |
| | | <OperaSolutionsWindow ref="operaSolutionsWindow" @success="callback"/> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import OperaSolutionsWindow from '@/components/business/OperaSolutionsWindow' |
| | | import { solutionsId } from '@/api/business/solutions' |
| | | export default { |
| | | name: 'OperaSolutionsDescWindow', |
| | | extends: BaseOpera, |
| | |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | companyName: '', |
| | | insuranceId: '', |
| | | validType: '', |
| | | type: '', |
| | | validType: 0, |
| | | type: 0, |
| | | minAge: '', |
| | | maxAge: '', |
| | | price: '', |
| | | timeUnit: '', |
| | | insureCycle: '', |
| | | insureCycleUnit: '', |
| | | priceCycleUnit: '', |
| | | email: '', |
| | | specialAgreement: '', |
| | | specialInfo: '', |
| | | ortherInfo: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | }, |
| | | tableData: [] |
| | | ortherInfo: '', |
| | | insuranceName: '', |
| | | signKeyword: '', |
| | | worktypeList: [], |
| | | worktypeIdList: [] |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | api: '/business/solutions', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.getDetails() |
| | | }) |
| | | }, |
| | | getDetails() { |
| | | solutionsId(this.form.id) |
| | | .then(res => { |
| | | for (const key in this.form) { |
| | | this.form[key] = res[key] |
| | | } |
| | | this.form.worktypeIdList = res.worktypeList.map(item => { |
| | | return { |
| | | worktypeId: item.worktypeId |
| | | } |
| | | }) |
| | | }) |
| | | }, |
| | | callback() { |
| | | this.$emit('success') |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <style lang="scss" scoped> |
| | | .info { |
| | | width: 100%; |
| | | .info_agree { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-top: 20px; |
| | | .info_agree_label { |
| | | font-size: 14px; |
| | | font-weight: 500; |
| | | color: #000000; |
| | | margin-top: 5px; |
| | | } |
| | | .info_agree_val { |
| | | font-size: 14px; |
| | | font-weight: 500; |
| | | color: #000000; |
| | | margin-top: 5px; |
| | | } |
| | | } |
| | | .info_label { |
| | | width: 100%; |
| | | display: flex; |
| | |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ä¿é©å
¬å¸" prop="insuranceId"> |
| | | <el-select v-model="form.insuranceId" placeholder="è¯·éæ©"> |
| | | <el-select v-model="form.insuranceId" @change="getAllWorktype1" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | v-for="item in company" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¿ä¿å
¬å¸" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥" v-trim/> |
| | | <el-form-item label="æ¿ä¿å
¬å¸" prop="companyName"> |
| | | <el-input v-model="form.companyName" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æä¿å¹´é¾" prop="minAge"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <el-select v-model="form.minAge" style="flex: 1;" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | v-for="item in 60" |
| | | :key="item" |
| | | :label="item" |
| | | :value="item"> |
| | | </el-option> |
| | | </el-select> |
| | | <span style="margin: 0 30px;">è³</span> |
| | | <el-select v-model="form.maxAge" style="flex: 1;" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | v-for="item in 60" |
| | | :key="item" |
| | | :label="item" |
| | | :value="item"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | <el-form-item label="ä¿é©è´¹ç¨" prop="price"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <el-input v-model="form.price" style="flex: 1;" placeholder="请è¾å
¥" v-trim/> |
| | | <span style="margin: 0 30px;">è³</span> |
| | | <span style="margin: 0 30px;">å
/人</span> |
| | | <el-select v-model="form.timeUnit" style="flex: 1;" placeholder="è¯·éæ©"> |
| | | <el-option label="天" value="0"></el-option> |
| | | <el-option label="åæ" value="1"></el-option> |
| | | <el-option label="æ" value="2"></el-option> |
| | | <el-option label="å¹´" value="3"></el-option> |
| | | <el-option label="天" :value="0"></el-option> |
| | | <el-option label="åæ" :value="1"></el-option> |
| | | <el-option label="æ" :value="2"></el-option> |
| | | <el-option label="å¹´" :value="3"></el-option> |
| | | </el-select> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="æä¿å¨æ" prop="insureCycleUnit"> |
| | | <el-form-item label="æä¿å¨æ" prop="insureCycle"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <el-input v-model="form.insureCycleUnit" style="flex: 1;" placeholder="请è¾å
¥" v-trim/> |
| | | <span style="margin: 0 30px;">è³</span> |
| | | <el-select v-model="form.timeUnit" style="flex: 1;" placeholder="è¯·éæ©"> |
| | | <el-option label="天" value="0"></el-option> |
| | | <el-option label="åæ" value="1"></el-option> |
| | | <el-option label="æ" value="2"></el-option> |
| | | <el-option label="å¹´" value="3"></el-option> |
| | | <el-input v-model="form.insureCycle" style="flex: 1;" placeholder="请è¾å
¥" v-trim/> |
| | | <span style="margin: 0 30px;"></span> |
| | | <el-select v-model="form.insureCycleUnit" style="flex: 1;" placeholder="è¯·éæ©"> |
| | | <el-option label="天" :value="0"></el-option> |
| | | <el-option label="åæ" :value="1"></el-option> |
| | | <el-option label="æ" :value="2"></el-option> |
| | | <el-option label="å¹´" :value="3"></el-option> |
| | | </el-select> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="æå°è®¡è´¹å¨æ" prop="priceCycleUnit"> |
| | | <el-select v-model="form.priceCycleUnit" style="flex: 1;" placeholder="è¯·éæ©"> |
| | | <el-option label="天" value="0"></el-option> |
| | | <el-option label="åæ" value="1"></el-option> |
| | | <el-option label="æ" value="2"></el-option> |
| | | <el-option label="å¹´" value="3"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="çææ¶é´" prop="validType"> |
| | | <el-radio-group v-model="form.validType"> |
| | |
| | | <el-form-item label="æ¥æ¶æä»¶é®ç®±" prop="email"> |
| | | <el-input v-model="form.email" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æä¿åç¾ç« å
³é®å" prop="email"> |
| | | <el-input v-model="form.email" placeholder="请è¾å
¥" v-trim/> |
| | | <el-form-item label="æä¿åç¾ç« å
³é®å" prop="signKeyword"> |
| | | <el-input v-model="form.signKeyword" placeholder="å¤ä¸ªè±æéå·éå¼" v-trim/> |
| | | </el-form-item> |
| | | <el-button type="primary">æ·»å å·¥ç§</el-button> |
| | | <el-button type="primary" @click="add">æ·»å å·¥ç§</el-button> |
| | | <el-table |
| | | :data="tableData" |
| | | :data="form.worktypeIdList" |
| | | border |
| | | style="width: 100%; margin-bottom: 20px;"> |
| | | <el-table-column |
| | |
| | | align="center" |
| | | label="æå±å·¥ç§"> |
| | | <template slot-scope="{row}"> |
| | | <el-select filterable v-model="row.info" placeholder="è¯·éæ©"> |
| | | <el-select filterable v-model="row.worktypeId" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | v-for="item in typeWork" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | |
| | | align="center" |
| | | width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" style="color: red;">å é¤</el-button> |
| | | <el-button type="text" size="small" style="color: red;" @click="dele(scope.$index)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { all } from '@/api/business/insurance' |
| | | import { all as allWorktype } from '@/api/business/worktype' |
| | | import { solutionsId } from '@/api/business/solutions' |
| | | export default { |
| | | name: 'OperaSolutionsWindow', |
| | | extends: BaseOpera, |
| | |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | companyName: '', |
| | | insuranceId: '', |
| | | validType: '', |
| | | type: '', |
| | | validType: 0, |
| | | type: 0, |
| | | minAge: '', |
| | | maxAge: '', |
| | | price: '', |
| | | timeUnit: '', |
| | | insureCycle: '', |
| | | insureCycleUnit: '', |
| | | priceCycleUnit: '', |
| | | email: '', |
| | | specialAgreement: '', |
| | | specialInfo: '', |
| | | ortherInfo: '' |
| | | ortherInfo: '', |
| | | signKeyword: '', |
| | | worktypeIdList: [{ worktypeId: '' }] |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥æ¹æ¡åç§°' } |
| | | ], |
| | | insuranceId: [ |
| | | { required: true, message: 'è¯·éæ©ä¿é©å
¬å¸' } |
| | | ], |
| | | companyName: [ |
| | | { required: true, message: '请è¾å
¥æ¿ä¿å
¬å¸' } |
| | | ], |
| | | minAge: [ |
| | | { required: true, message: 'è¯·éæ©æä¿å¹´é¾' } |
| | | ], |
| | | price: [ |
| | | { required: true, message: '请è¾å
¥ä¿é©è´¹ç¨' } |
| | | ], |
| | | insureCycle: [ |
| | | { required: true, message: '请è¾å
¥æä¿å¨æ' } |
| | | ], |
| | | validType: [ |
| | | { required: true, message: 'è¯·éæ©çææ¶é´' } |
| | | ], |
| | | type: [ |
| | | { required: true, message: 'è¯·éæ©æä¿ç±»å' } |
| | | ], |
| | | signKeyword: [ |
| | | { required: true, message: '请è¾å
¥æä¿åç¾ç« å
³é®å' } |
| | | ] |
| | | }, |
| | | tableData: [] |
| | | company: [], |
| | | typeWork: [] |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | api: '/business/solutions', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | // 忢å
¬å¸ |
| | | getAllWorktype1() { |
| | | this.form.worktypeIdList = [{ worktypeId: '' }] |
| | | this.getAllWorktype() |
| | | }, |
| | | // 确认æ°å»º/ä¿®æ¹ |
| | | confirm () { |
| | | let data = JSON.parse(JSON.stringify(this.form)) |
| | | data.worktypeIdList = data.worktypeIdList.map(item => item.worktypeId) |
| | | this.$refs.form.validate((valid) => { |
| | | if (!valid) { |
| | | return |
| | | } |
| | | // è°ç¨æ°å»ºæ¥å£ |
| | | this.isWorking = true |
| | | if (data.id == null || data.id === '') { |
| | | this.api.create(data) |
| | | .then(() => { |
| | | this.visible = false |
| | | this.$tip.apiSuccess('æ°å»ºæå') |
| | | this.$emit('success') |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking = false |
| | | }) |
| | | } else { |
| | | this.api.updateById(data) |
| | | .then(() => { |
| | | this.visible = false |
| | | this.$tip.apiSuccess('ä¿®æ¹æå') |
| | | this.$emit('success') |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.form.worktypeIdList = [{ worktypeId: '' }] |
| | | this.allCompany() |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | solutionsId(target.id) |
| | | .then(res => { |
| | | for (const key in this.form) { |
| | | this.form[key] = res[key] |
| | | } |
| | | this.form.worktypeIdList = res.worktypeList.map(item => { |
| | | return { |
| | | worktypeId: item.worktypeId |
| | | } |
| | | }) |
| | | this.getAllWorktype() |
| | | }) |
| | | }) |
| | | }, |
| | | // æ¥è¯¢ä¿é©å
¬å¸ä¸å
¨é¨å·¥ç§ |
| | | getAllWorktype() { |
| | | allWorktype({ |
| | | insuranceId: this.form.insuranceId |
| | | }).then(res => { |
| | | this.typeWork = res |
| | | }) |
| | | }, |
| | | // æ¥è¯¢å
¨é¨ä¿é©å
¬å¸ |
| | | allCompany() { |
| | | all({ dataType: 2 }) |
| | | .then(res => { |
| | | console.log(res) |
| | | this.company = res |
| | | }) |
| | | }, |
| | | add() { |
| | | this.form.worktypeIdList.push({ worktypeId: '' }) |
| | | }, |
| | | dele(index) { |
| | | if (this.form.worktypeIdList.length === 1) { |
| | | this.$message.warning('è³å°è¦ä¿çä¸é¡¹') |
| | | return |
| | | } |
| | | this.form.worktypeIdList.splice(index, 1) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload', |
| | | // uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/uploadPicture', |
| | | // uploadData: { |
| | | // folder: 'upload', |
| | | // type: 'image' |
| | | // }, |
| | | imgurlfull: '' |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload' |
| | | } |
| | | }, |
| | | |
| | |
| | | let { data } = res |
| | | this.file.imgurl = data.imgaddr; |
| | | this.file.imgurlfull = data.url; |
| | | console.log(this.file); |
| | | this.$message.success('ä¸ä¼ æå') |
| | | this.$emit('uploadSuccess', { imgurl: data.imgaddr, imgurlfull: data.url }) |
| | | this.$emit('uploadSuccess', { imgurl: data.imgaddr, imgurlfull: data.url, name: data.originname }) |
| | | } else { |
| | | this.$message.error('ä¸ä¼ 失败') |
| | | } |
| | |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="ç¨æ·å" prop="username" required> |
| | | <el-input v-model="form.username" placeholder="请è¾å
¥ç¨æ·å" v-trim maxlength="50"/> |
| | | <el-form-item label="è´¦å·" prop="username" required> |
| | | <el-input v-model="form.username" placeholder="请è¾å
¥" v-trim maxlength="50"/> |
| | | </el-form-item> |
| | | <el-form-item label="å§å" prop="realname" required> |
| | | <el-input v-model="form.realname" placeholder="请è¾å
¥å§å" v-trim maxlength="50"/> |
| | | <el-form-item label="åç§°" prop="realname" required> |
| | | <el-input v-model="form.realname" placeholder="请è¾å
¥" v-trim maxlength="50"/> |
| | | </el-form-item> |
| | | <el-form-item label="æ§å«" prop="sex" required> |
| | | <el-radio-group v-model="form.sex"> |
| | | <el-radio label="1">ç·</el-radio> |
| | | <el-radio label="0">女</el-radio> |
| | | </el-radio-group> |
| | | <el-form-item label="èç³»æ¹å¼" prop="mobile"> |
| | | <el-input v-model="form.mobile" placeholder="请è¾å
¥" v-trim maxlength="11"/> |
| | | </el-form-item> |
| | | <el-form-item label="头å" prop="avatar" required> |
| | | <el-radio-group v-model="form.avatar" class="form-item-avatar"> |
| | | <el-radio label="https://dmtest.ahapp.net/preselectfile/man.png" border><img src="https://dmtest.ahapp.net/preselectfile/man.png" alt=""></el-radio> |
| | | <el-radio label="https://dmtest.ahapp.net/preselectfile/woman.png" border><img src="https://dmtest.ahapp.net/preselectfile/woman.png" alt=""></el-radio> |
| | | </el-radio-group> |
| | | <el-form-item label="éªè¯ç " prop="captcha"> |
| | | <div style="width: 100%; display: flex; align-items: center;"> |
| | | <el-input v-model="form.captcha" maxlength="11" type="number" style="flex: 1;" placeholder="请è¾å
¥" v-trim/> |
| | | <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" @click="send" v-if="num === 0">åééªè¯ç </el-button> |
| | | <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" v-else>{{num}}s</el-button> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.id == null" label="åå§å¯ç " prop="password" required> |
| | | <el-input v-model="form.password" type="password" placeholder="请è¾å
¥åå§å¯ç " maxlength="30" show-password/> |
| | | </el-form-item> |
| | | <el-form-item label="æå±é¨é¨" prop="departmentId" required> |
| | | <DepartmentSelect v-model="form.departmentId" placeholder="è¯·éæ©ç¨æ·æå±é¨é¨" :inline="false" clearable/> |
| | | </el-form-item> |
| | | <el-form-item label="å²ä½" prop="positionId"> |
| | | <PositionSelect v-model="form.positionIds" placeholder="è¯·éæ©ç¨æ·æå¨å²ä½" :inline="false" :multiple="true" clearable/> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥å·" prop="empNo"> |
| | | <el-input v-model="form.empNo" placeholder="请è¾å
¥å·¥å·" v-trim maxlength="50"/> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·ç " prop="mobile"> |
| | | <el-input v-model="form.mobile" placeholder="请è¾å
¥ææºå·ç " v-trim maxlength="11"/> |
| | | </el-form-item> |
| | | <el-form-item label="é®ç®±" prop="email"> |
| | | <el-input v-model="form.email" placeholder="请è¾å
¥é®ç®±" v-trim maxlength="200"/> |
| | | </el-form-item> |
| | | <el-form-item label="çæ¥" prop="birthday"> |
| | | <el-date-picker v-model="form.birthday" value-format="yyyy-MM-dd" placeholder="è¯·éæ©ç¨æ·çæ¥"/> |
| | | <el-form-item label="æéæä»¶é®ç®±" prop="email"> |
| | | <el-input v-model="form.email" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | |
| | | import DepartmentSelect from '@/components/common/DepartmentSelect' |
| | | import PositionSelect from '@/components/common/PositionSelect' |
| | | import { checkMobile, checkEmail } from '@/utils/form' |
| | | import { sendSms } from '@/api/business/smsEmail' |
| | | |
| | | export default { |
| | | name: 'OperaUserWindow', |
| | |
| | | id: null, |
| | | username: '', // ç¨æ·å |
| | | realname: '', // å§å |
| | | empNo: '', // å·¥å· |
| | | departmentId: null, // æå±é¨é¨ID |
| | | positionIds: [], // æå±å²ä½IDé |
| | | avatar: '/avatar/man.png', // 头å |
| | | password: '', // å¯ç |
| | | mobile: '', // ææºå·ç |
| | | email: '', // é®ç®± |
| | | sex: '1', // æ§å« |
| | | birthday: '' // çæ¥ |
| | | email: '', |
| | | captcha: '' |
| | | }, |
| | | num: 0, |
| | | timer: null, |
| | | // éªè¯è§å |
| | | rules: { |
| | | username: [ |
| | |
| | | realname: [ |
| | | { required: true, message: '请è¾å
¥å§å' } |
| | | ], |
| | | password: [ |
| | | { required: true, message: '请è¾å
¥å¯ç ' } |
| | | ], |
| | | departmentId: [ |
| | | { required: true, message: 'è¯·éæ©é¨é¨' } |
| | | ], |
| | | avatar: [ |
| | | { required: true, message: 'è¯·éæ©ç¨æ·å¤´å' } |
| | | ], |
| | | sex: [ |
| | | { required: true, message: 'è¯·éæ©ç¨æ·æ§å«' } |
| | | ], |
| | | mobile: [ |
| | | { required: true, validator: checkMobile } |
| | | ], |
| | | email: [ |
| | | { validator: checkEmail } |
| | | { required: true, message: '请è¾å
¥é®ç®±' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | send() { |
| | | if (!this.form.mobile) { |
| | | this.$message.warning('请è¾å
¥ææºå·') |
| | | return |
| | | } |
| | | sendSms({ phone: this.form.mobile }) |
| | | .then(res => { |
| | | this.num = 60 |
| | | this.setTime() |
| | | }) |
| | | }, |
| | | setTime() { |
| | | this.timer = setInterval(() => { |
| | | this.num -= 1 |
| | | if (this.num === 0) { |
| | | clearInterval(this.timer) |
| | | this.num = 0 |
| | | } |
| | | }, 1000) |
| | | }, |
| | | /** |
| | | * @title çªå£æ é¢ |
| | | * @target ç¼è¾çç¨æ·å¯¹è±¡ |
| | |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | clearInterval(this.timer) |
| | | this.num = 0 |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | width="582px" |
| | | title="é
ç½®ç¨æ·è§è²" |
| | | @confirm="confirm" |
| | | > |
| | | <p class="tip" v-if="user != null">ä¸ºç¨æ· <em>{{user.realname}}</em> åé
ä¼ä¸</p> |
| | | <el-transfer |
| | | v-if="company" |
| | | v-model="selectedIds" |
| | | :titles="['æªåé
ä¼ä¸', 'å·²åé
ä¼ä¸']" |
| | | :props="{ |
| | | key: 'id', |
| | | label: 'name' |
| | | }" |
| | | :data="company"> |
| | | </el-transfer> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BasePage from '@/components/base/BasePage' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { pageAll } from '@/api/business/company' |
| | | import { create } from '@/api/business/companyPermission' |
| | | export default { |
| | | name: 'allocationEnterprises', |
| | | extends: BasePage, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | visible: false, |
| | | isWorking: false, |
| | | // ç¨æ· |
| | | user: null, |
| | | // ä¼ä¸å表 |
| | | company: null, |
| | | // å·²éä¸çè§è²ID |
| | | selectedIds: [] |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.selectedIds = [] |
| | | this.visible = true |
| | | this.title = title |
| | | this.user = target |
| | | pageAll({ userId: target.id }) |
| | | .then(res => { |
| | | this.company = res.map(r => { |
| | | return { |
| | | name: r.name, |
| | | id: r.id |
| | | } |
| | | }) |
| | | res.forEach(item => { |
| | | if (item.hasPerimission === 1) { |
| | | this.selectedIds.push(item.id) |
| | | } |
| | | }) |
| | | }) |
| | | }, |
| | | // ç¡®è®¤éæ©è§è² |
| | | confirm () { |
| | | if (this.isWorking) { |
| | | return |
| | | } |
| | | this.isWorking = true |
| | | create({ |
| | | userId: this.user.id, |
| | | companyIdList: this.selectedIds |
| | | }) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('è§è²é
ç½®æåï¼ç¨æ·éæ°ç»å½åçæ') |
| | | this.visible = false |
| | | this.$emit('success') |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking = false |
| | | }) |
| | | }, |
| | | // å
³é |
| | | close () { |
| | | this.$emit('update:visible', false) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | @import "@/assets/style/variables.scss"; |
| | | // è§è²é
ç½® |
| | | .global-window { |
| | | .tip { |
| | | em { |
| | | font-style: normal; |
| | | color: $primary-color; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | .tip-warn { |
| | | margin: 4px 0 12px 0; |
| | | font-size: 12px; |
| | | color: #999; |
| | | i { |
| | | color: orange; |
| | | margin-right: 4px; |
| | | font-size: 14px; |
| | | position: relative; |
| | | top: 1px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:company:create']"> |
| | | <li><el-button type="primary" @click="$refs.operaCompanyWindow.open('æ°å»ºä¼ä¸ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:company:create']">æ°å»ºä¼ä¸</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.OperaCompanyDescWindow.open('详æ
')" icon="el-icon-plus" v-permissions="['business:company:create']">详æ
</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaCompanyWindow.open('æ°å»ºä¼ä¸ä¿¡æ¯è¡¨')" v-permissions="['business:company:create']">æ°å»ºä¼ä¸</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.OperaCompanyDescWindow.open('详æ
')" v-permissions="['business:company:create']">详æ
</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:insurance:exportExcel']" @click="exportExcel">导åº</el-button> |
| | | <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:insurance:exportExcel']" @click="exportExcel">导åº</el-button>--> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | <el-button @click="$refs.OperaInsuranceDescWindow.open('ä¿é©å
¬å¸è¯¦æ
')">详æ
</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:insurance:create']"> |
| | | <li><el-button type="primary" @click="$refs.operaInsuranceWindow.open('æ°å¢ä¿é©å
¬å¸')" icon="el-icon-plus" v-permissions="['business:insurance:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaInsuranceWindow.open('æ°å¢ä¿é©å
¬å¸')" v-permissions="['business:insurance:create']">æ°å¢ä¿é©å
¬å¸</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | |
| | | <el-table-column label="å¯ç¨ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | @change="changeStatus($event, row)" |
| | | v-model="row.status" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaInsuranceWindow.open('ç¼è¾ä¿é©å
¬å¸ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:insurance:update']">æ¥ç详æ
</el-button> |
| | | <el-button type="text" @click="$refs.operaInsuranceWindow.open('ç¼è¾ä¿é©å
¬å¸ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:insurance:update']">ä¿®æ¹</el-button> |
| | | <el-button type="text" @click="$refs.OperaInsuranceDescWindow.open('ä¿é©å
¬å¸è¯¦æ
', row)" icon="el-icon-edit" v-permissions="['business:insurance:update']">æ¥ç详æ
</el-button> |
| | | <el-button type="text" @click="$refs.operaInsuranceWindow.open('ä¿®æ¹ä¿é©å
¬å¸', row)" icon="el-icon-edit" v-permissions="['business:insurance:update']">ä¿®æ¹</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaInsuranceWindow from '@/components/business/OperaInsuranceWindow' |
| | | import OperaInsuranceDescWindow from '@/components/business/OperaInsuranceDescWindow' |
| | | import { updateStatus } from '@/api/business/insurance' |
| | | export default { |
| | | name: 'Insurance', |
| | | extends: BaseTable, |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | // ä¿®æ¹ç¶æ |
| | | changeStatus(status, row) { |
| | | updateStatus({ id: row.id, status }) |
| | | .then(res => { |
| | | this.search() |
| | | }) |
| | | .catch(err => { |
| | | row.status = row.status === 0 ? 1 : 0 |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:solutions:create']"> |
| | | <li><el-button type="primary" @click="$refs.operaSolutionsWindow.open('æ°å»ºä¿é©æ¹æ¡')" icon="el-icon-plus" v-permissions="['business:solutions:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaSolutionsWindow.open('æ°å»ºä¿é©æ¹æ¡')" v-permissions="['business:solutions:create']">æ·»å æ¹æ¡</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column label="åºå·" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.$index + 1}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="ä¿é©æ¹æ¡" min-width="100px"></el-table-column> |
| | | <el-table-column prop="insuranceId" label="ä¿é©å
¬å¸" min-width="100px"></el-table-column> |
| | | <el-table-column prop="insuranceId" label="æä¿å¹´é¾" min-width="100px"></el-table-column> |
| | | <el-table-column prop="insuranceName" label="ä¿é©å
¬å¸" min-width="100px"></el-table-column> |
| | | <el-table-column label="æä¿å¹´é¾" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{row.minAge}}è³{{row.maxAge}}å²</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä¿çææ¥æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.validType === 0">æ¥åçæ</span> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="ä¿é©è´¹ç¨" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{row.price}}å
/人/æ</span> |
| | | <span>{{row.price}}å
/人/</span> |
| | | <span v-if="row.timeUnit === 0">天</span> |
| | | <span v-if="row.timeUnit === 1">åæ</span> |
| | | <span v-if="row.timeUnit === 2">æ</span> |
| | | <span v-if="row.timeUnit === 3">å¹´</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="å¯ç¨ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | @change="changeStatus($event, row)" |
| | | v-model="row.status" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="minAge" label="æä½å¹´é¾" min-width="100px"></el-table-column> |
| | | <el-table-column prop="maxAge" label="æé«å¹´é¾" min-width="100px"></el-table-column> |
| | | |
| | | <el-table-column |
| | | v-if="containPermissions(['business:solutions:update', 'business:solutions:delete'])" |
| | | label="æä½" |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaSolutionsWindow.open('æ¹æ¡è¯¦æ
', row)" icon="el-icon-edit" v-permissions="['business:solutions:update']">æ¥ç详æ
</el-button> |
| | | <el-button type="text" @click="$refs.operaSolutionsWindow.open('ç¼è¾ä¿é©æ¹æ¡', row)" icon="el-icon-edit" v-permissions="['business:solutions:update']">ä¿®æ¹</el-button> |
| | | <el-button type="text" @click="$refs.OperaSolutionsDescWindow.open('æ¹æ¡è¯¦æ
', { id: row.id })" icon="el-icon-edit" v-permissions="['business:solutions:update']">æ¥ç详æ
</el-button> |
| | | <el-button type="text" @click="$refs.operaSolutionsWindow.open('ç¼è¾ä¿é©æ¹æ¡', { id: row.id })" icon="el-icon-edit" v-permissions="['business:solutions:update']">ä¿®æ¹</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaSolutionsWindow from '@/components/business/OperaSolutionsWindow' |
| | | import OperaSolutionsDescWindow from '@/components/business/OperaSolutionsDescWindow' |
| | | import { updateStatus } from '@/api/business/solutions' |
| | | export default { |
| | | name: 'Solutions', |
| | | extends: BaseTable, |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | // ä¿®æ¹ç¶æ |
| | | changeStatus(status, row) { |
| | | updateStatus({ id: row.id, status }) |
| | | .then(res => { |
| | | this.search() |
| | | }) |
| | | .catch(err => { |
| | | row.status = row.status === 0 ? 1 : 0 |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <TableLayout :permissions="['system:user:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline> |
| | | <el-form-item label="ç¨æ·å" prop="username"> |
| | | <el-input v-model="searchForm.username" v-trim placeholder="请è¾å
¥ç¨æ·å" @keypress.enter.native="search"/> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="ç¨æ·å" prop="username">--> |
| | | <!-- <el-input v-model="searchForm.username" v-trim placeholder="请è¾å
¥ç¨æ·å" @keypress.enter.native="search"/>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="å§å" prop="realname"> |
| | | <el-input v-model="searchForm.realname" v-trim placeholder="请è¾å
¥å§å" @keypress.enter.native="search"/> |
| | | <el-input v-model="searchForm.realname" v-trim placeholder="请è¾å
¥" @keypress.enter.native="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·ç " prop="mobile"> |
| | | <el-input v-model="searchForm.mobile" v-trim placeholder="请è¾å
¥ææºå·ç " @keypress.enter.native="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æå±é¨é¨" prop="rootDeptId"> |
| | | <DepartmentSelect v-model="searchForm.rootDeptId" placeholder="è¯·éæ©æå±é¨é¨" clearable/> |
| | | </el-form-item> |
| | | <el-form-item label="å²ä½" prop="positionId"> |
| | | <PositionSelect v-model="searchForm.positionId" placeholder="è¯·éæ©å²ä½" clearable/> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="ææºå·ç " prop="mobile">--> |
| | | <!-- <el-input v-model="searchForm.mobile" v-trim placeholder="请è¾å
¥ææºå·ç " @keypress.enter.native="search"/>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="æå±é¨é¨" prop="rootDeptId">--> |
| | | <!-- <DepartmentSelect v-model="searchForm.rootDeptId" placeholder="è¯·éæ©æå±é¨é¨" clearable/>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="å²ä½" prop="positionId">--> |
| | | <!-- <PositionSelect v-model="searchForm.positionId" placeholder="è¯·éæ©å²ä½" clearable/>--> |
| | | <!-- </el-form-item>--> |
| | | <section> |
| | | <el-button type="primary" icon="el-icon-search" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:user:create', 'system:user:delete']"> |
| | | <li v-permissions="['system:user:create']"><el-button icon="el-icon-plus" type="primary" @click="$refs.operaUserWindow.open('æ°å»ºç¨æ·')">æ°å»º</el-button></li> |
| | | <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">å é¤</el-button></li> |
| | | <li v-permissions="['system:user:create']"><el-button type="primary" @click="$refs.operaUserWindow.open('æ°å¢è´¦å·')">æ°å¢è´¦å·</el-button></li> |
| | | <!-- <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">å é¤</el-button></li>--> |
| | | </ul> |
| | | <!-- @selection-change="handleSelectionChange"--> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | :default-sort = "{prop: 'createTime', order: 'descending'}" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | @sort-change="handleSortChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="avatar" label="头å" width="80px" class-name="table-column-avatar" fixed="left"> |
| | | <template slot-scope="{row}"> |
| | | <img :src="row.avatar == null ? '/static/avatar/man.png' : row.avatar"> |
| | | <el-table-column label="åºå·" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.$index + 1}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="realname" label="å§å" min-width="100px" fixed="left"></el-table-column> |
| | | <el-table-column prop="username" label="ç¨æ·å" min-width="120px"></el-table-column> |
| | | <el-table-column prop="empNo" label="å·¥å·" sortable="custom" sort-by="EMP_NO" min-width="80px"></el-table-column> |
| | | <el-table-column prop="department" label="é¨é¨" min-width="120px"> |
| | | <template slot-scope="{row}">{{row.department == null ? '' : row.department.name}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="position" label="å²ä½" min-width="160px" class-name="table-column-strings"> |
| | | <template slot-scope="{row}"> |
| | | <ul> |
| | | <li v-for="position in row.positions" :key="position.id">{{position.name}}</li> |
| | | </ul> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sex" label="æ§å«" sortable="custom" sort-by="SEX" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | {{row.sex | sex}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="mobile" label="ææºå·ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="email" label="é®ç®±" min-width="180px"></el-table-column> |
| | | <el-table-column prop="birthday" label="çæ¥" sortable="custom" sort-by="BIRTHDAY" min-width="100px"></el-table-column> |
| | | <el-table-column prop="username" label="è´¦å·" min-width="120px"></el-table-column> |
| | | <el-table-column prop="realname" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="mobile" label="èç³»æ¹å¼" min-width="100px"></el-table-column> |
| | | <el-table-column prop="roles" label="è§è²" min-width="160px" class-name="table-column-strings"> |
| | | <template slot-scope="{row}"> |
| | | <ul> |
| | |
| | | </ul> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createUser" label="å建人" min-width="100px"> |
| | | <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template> |
| | | <el-table-column label="å¯ç¨ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | @change="changeStatus($event, row)" |
| | | v-model="row.status" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="0" |
| | | :inactive-value="1"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" sortable="custom" sort-by="CREATE_TIME" min-width="140px"></el-table-column> |
| | | <el-table-column prop="updateUser" label="æ´æ°äºº" min-width="100px"> |
| | | <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="updateTime" label="æ´æ°æ¶é´" sortable="custom" sort-by="UPDATE_TIME" min-width="140px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['system:user:update', 'system:user:createUserRole', 'system:user:resetPwd', 'system:user:delete'])" |
| | | label="æä½" |
| | |
| | | > |
| | | <template v-if="isAdmin || (row.id !== userInfo.id && row.roles.findIndex(r => r.code === adminCode) === -1)" slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('ç¼è¾ç¨æ·', row)" v-permissions="['system:user:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.allocationEnterprises.open('åé
ä¼ä¸', row)">åé
ä¼ä¸</el-button> |
| | | <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">é
ç½®è§è²</el-button> |
| | | <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">éç½®å¯ç </el-button> |
| | | <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">å é¤</el-button> |
| | | <!-- <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">å é¤</el-button>--> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <RoleConfigWindow ref="roleConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> |
| | | <!-- éç½®å¯ç --> |
| | | <ResetPwdWindow ref="resetPwdWindow"/> |
| | | <!-- åé
ä¼ä¸ --> |
| | | <allocationEnterprises ref="allocationEnterprises" @success="handlePageChange(tableData.pagination.pageIndex)"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import OperaUserWindow from '@/components/system/user/OperaUserWindow' |
| | | import allocationEnterprises from '@/components/system/user/allocationEnterprises' |
| | | import RoleConfigWindow from '@/components/system/user/RoleConfigWindow' |
| | | import ResetPwdWindow from '@/components/system/user/ResetPwdWindow' |
| | | import DepartmentSelect from '@/components/common/DepartmentSelect' |
| | | import PositionSelect from '@/components/common/PositionSelect' |
| | | import { updUserStatus } from '@/api/system/user' |
| | | |
| | | export default { |
| | | name: 'SystemUser', |
| | | extends: BaseTable, |
| | | components: { PositionSelect, DepartmentSelect, ResetPwdWindow, RoleConfigWindow, OperaUserWindow, TableLayout, Pagination }, |
| | | components: { allocationEnterprises, PositionSelect, DepartmentSelect, ResetPwdWindow, RoleConfigWindow, OperaUserWindow, TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | |
| | | }] |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | changeStatus(status, row) { |
| | | updUserStatus({ |
| | | id: row.id, |
| | | status |
| | | }).then(res => { |
| | | this.search() |
| | | }).catch(err => { |
| | | row.status = row.status === 0 ? 1 : 0 |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |