master
xy 1 year ago
parent 3ca0602060
commit 2165dcc137

@ -144,6 +144,12 @@
>取消</el-button>
</template>
<template v-else>
<el-button
v-if="isHasAuth('assign') && row.pay_status === 1 && !row.status"
size="small"
type="primary"
@click="isShowAssign = true,$refs['Assign'].row = row"
>分配</el-button>
<el-button
v-if="isHasAuth('detail')"
size="small"
@ -193,30 +199,34 @@
</el-card>
<rich-text-modal ref="RichTextModal" @confirm="({ row, fieldName, text }) => row[fieldName] = text" />
<assign ref="Assign" :nurses="nurses" :visible.sync="isShowAssign" @refresh="getList"></assign>
</div>
</template>
<script>
import VxeUI from 'vxe-pc-ui'
import Assign from './components/Assign.vue'
import RichTextModal from '@/components/RichTextModal/index.vue'
import { authMixin } from '@/mixin/authMixin'
import { uploadSize } from '@/settings'
import { deepCopy } from '@/utils'
import { destroy, index, save } from '@/api/accompany-order/accompany-order'
import { index as nurseIndex } from '@/api/nurse/nurse'
import axios from 'axios'
import { getToken } from '@/utils/auth'
export default {
name: 'AccompanyOrder',
components: {
Assign,
RichTextModal
},
mixins: [authMixin],
data() {
return {
isShowAssign: false,
nurses: [],
uploadSize,
examineKey: 0,
isShowAdd: false,
@ -263,7 +273,7 @@ export default {
}
},
created() {
this.getNurses()
this.getList()
},
mounted() {
@ -408,6 +418,18 @@ export default {
} catch (err) {
this.loading = false
}
},
async getNurses() {
try {
const res = await nurseIndex({
page: 1,
page_size: 9999
})
this.nurses = res.data
} catch (err) {
console.error(err)
}
}
}

@ -0,0 +1,215 @@
<template>
<div>
<el-drawer
title="分配订单"
direction="rtl"
size="68%"
:visible.sync="visible"
append-to-body
:before-close="handleClose"
@close="$emit('update:visible',false)"
>
<section class="drawer-container">
<vxe-table
ref="table"
class="drawer-container__form"
stripe
style="margin-top: 10px"
:loading="loading"
:max-height="600"
keep-source
show-overflow
:scroll-y="{ enabled: true, gt: 0 }"
:radio-config="{ labelField: 'name', highlight: true }"
:row-config="{ isCurrent: true, isHover: true }"
:column-config="{ resizable: true }"
:data="nurses"
>
<vxe-column type="radio" field="name" width="200" title="护工姓名" header-align="center" />
<vxe-column type="seq" width="58" align="center" />
<vxe-column
header-align="center"
field="mobile"
width="160"
title="手机号"
:edit-render="{ name: 'input', attrs: { type: 'text' } }"
/>
<vxe-column
header-align="center"
field="idcard"
width="160"
title="身份证号"
:edit-render="{ name: 'input', attrs: { type: 'text' } }"
/>
<vxe-column
align="center"
field="sex"
width="180"
title="性别"
:edit-render="{ name: 'VxeSelect', options: [{'value':1,'label':'男'},{'value':0,'label':'女'}], props: { multiple: false }, optionProps: { value: 'value', label: 'label' } }"
/>
<vxe-column
align="center"
field="birthday"
width="180"
title="生日"
:edit-render="{ name: 'VxeDatePicker', props: { type: 'date' } }"
/>
<vxe-column
header-align="center"
field="hometown"
width="160"
title="家乡"
:edit-render="{ name: 'input', attrs: { type: 'text' } }"
/>
<vxe-column
header-align="center"
field="address"
width="160"
title="地址"
:edit-render="{ name: 'input', attrs: { type: 'text' } }"
/>
<vxe-column
header-align="center"
field="emergency_phone"
width="160"
title="紧急联系电话"
:edit-render="{ name: 'input', attrs: { type: 'text' } }"
/>
<vxe-column
header-align="center"
align="right"
field="work_years"
width="160"
title="年限"
:edit-render="{ name: 'input', attrs: { type: 'number' } }"
/>
<vxe-column
align="center"
field="join_at"
width="180"
title="加入时间"
:edit-render="{ name: 'VxeDatePicker', props: { type: 'date' } }"
/>
<vxe-column
align="center"
field="leave_at"
width="180"
title="离职时间"
:edit-render="{ name: 'VxeDatePicker', props: { type: 'date' } }"
/>
<vxe-column
align="center"
field="work_status"
width="180"
title="工作状态"
:edit-render="{ name: 'VxeSelect', options: [{'value':1,'label':'兼职'},{'value':2,'label':'全职'}], props: { multiple: false }, optionProps: { value: 'value', label: 'label' } }"
/>
<vxe-column
align="center"
field="status"
width="180"
title="状态"
:edit-render="{ name: 'VxeSelect', options: [{'value':0,'label':'请假'},{'value':1,'label':'正常服务'}], props: { multiple: false }, optionProps: { value: 'value', label: 'label' } }"
/>
<vxe-column
align="center"
field="has_social_insurance"
width="140"
title="是否有社保"
:edit-render="{ name: 'VxeSelect', options: [{ label: '是', value: 1 },{ label: '否', value: 0 }] }"
/>
<vxe-column
align="center"
field="has_qualification"
width="140"
title="是否有资质"
:edit-render="{ name: 'VxeSelect', options: [{ label: '是', value: 1 },{ label: '否', value: 0 }] }"
/>
</vxe-table>
</section>
<div class="drawer-container__footer">
<el-button type="primary" :loading="loading" @click="submit">{{ loading ? ' ...' : ' ' }}</el-button>
</div>
</el-drawer>
</div>
</template>
<script>
import { save } from '@/api/accompany-order/accompany-order'
export default {
props: {
visible: {
type: Boolean,
default: false
},
nurses: {
type: Array,
default: () => []
}
},
data() {
return {
row: {},
loading: false
}
},
computed: {},
methods: {
handleClose(done) {
this.$confirm('确定关闭窗口?')
.then(_ => {
done()
})
.catch(_ => {})
},
submit() {
if (this.row.id && this.$refs['table'].getRadioRecord(true)) {
save({
id: this.row.id,
nurse_id: this.$refs['table'].getRadioRecord(true).id,
status: 0
}).then(_ => {
this.$message.success('分配成功!')
this.$emit('update:visible', false)
this.$emit('refresh')
})
}
}
}
}
</script>
<style scoped lang="scss">
.drawer-container {
height: calc(100% - 70px);
padding: 20px;
display: flex;
flex-direction: column;
&__form {
}
&__footer {
margin-top: 20px;
display: flex;
justify-content: flex-end;
padding: 0 20px;
}
}
</style>
Loading…
Cancel
Save