|
@ -34,11 +34,19 @@ |
|
|
</ButtonGradient> |
|
|
</ButtonGradient> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<InputSearch style="width: 402px;" :formList="searchFormList" :formConfigOptions="{ labelWidth: '72px' }" |
|
|
<InputSearch |
|
|
|
|
|
style="width: 402px;" |
|
|
|
|
|
:formList="searchFormList" |
|
|
|
|
|
:formConfigOptions="{ labelWidth: '100px' }" |
|
|
|
|
|
placeholder="请输入姓名、电话,回车搜索" |
|
|
|
|
|
type="input" |
|
|
|
|
|
:params="params" |
|
|
@handleSearch="handleSearch" /> |
|
|
@handleSearch="handleSearch" /> |
|
|
</div> |
|
|
</div> |
|
|
<!-- <ElEmpty v-if="!data.length && !isFirst" description="暂无数据" style="width: 100%;height: 100%;position: absolute;" /> --> |
|
|
|
|
|
<div v-if="!data.length && !isFirst" class="no-data" style="position: absolute">暂无数据</div> |
|
|
<div class="body"> |
|
|
|
|
|
<ElEmpty v-if="!data.length && !isFirst" description="暂无数据" style="width: 100%;height: 100%;position: absolute;" /> |
|
|
|
|
|
<!-- <div v-if="!data.length && !isFirst" class="no-data" style="position: absolute">暂无数据</div> --> |
|
|
|
|
|
|
|
|
<SpecialTable v-else :columns="columns" :data="data" class="body"> |
|
|
<SpecialTable v-else :columns="columns" :data="data" class="body"> |
|
|
<template #title-DateDuty> |
|
|
<template #title-DateDuty> |
|
@ -62,7 +70,7 @@ |
|
|
</template> |
|
|
</template> |
|
|
<template #content-dayShift="{ data }"> |
|
|
<template #content-dayShift="{ data }"> |
|
|
<div class="item-parent" v-if="data.dayShift && data.dayShift.length"> |
|
|
<div class="item-parent" v-if="data.dayShift && data.dayShift.length"> |
|
|
<div class="item" v-for="item in data.dayShift"> |
|
|
<div class="item" v-for="(item,index) in data.dayShift" :key="index" > |
|
|
<img src="@screen/images/form/people.svg" /> |
|
|
<img src="@screen/images/form/people.svg" /> |
|
|
{{ item.name }} |
|
|
{{ item.name }} |
|
|
</div> |
|
|
</div> |
|
@ -73,7 +81,7 @@ |
|
|
</template> |
|
|
</template> |
|
|
<template #content-graveyardShift="{ data }"> |
|
|
<template #content-graveyardShift="{ data }"> |
|
|
<div class="item-parent" v-if="data.graveyardShift && data.graveyardShift.length"> |
|
|
<div class="item-parent" v-if="data.graveyardShift && data.graveyardShift.length"> |
|
|
<div class="item" v-for="item in data.graveyardShift"> |
|
|
<div class="item" v-for="(item,index) in data.graveyardShift" :key="index"> |
|
|
<img src="@screen/images/form/people.svg" /> |
|
|
<img src="@screen/images/form/people.svg" /> |
|
|
{{ item.name }} |
|
|
{{ item.name }} |
|
|
</div> |
|
|
</div> |
|
@ -103,6 +111,8 @@ |
|
|
</ButtonGradient> |
|
|
</ButtonGradient> |
|
|
</template> |
|
|
</template> |
|
|
</SpecialTable> |
|
|
</SpecialTable> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<OperateRecord :visible="operateRecordVisible" @close="handleOperateRecord(false)" :data="dialogData" /> |
|
|
<OperateRecord :visible="operateRecordVisible" @close="handleOperateRecord(false)" :data="dialogData" /> |
|
|
|
|
|
|
|
@ -123,6 +133,7 @@ import request from "@/utils/request"; |
|
|
import { setLoading } from "@screen/utils/index.js" |
|
|
import { setLoading } from "@screen/utils/index.js" |
|
|
import { delay, exportFile, confirm, uploadFile } from "@screen/utils/common"; |
|
|
import { delay, exportFile, confirm, uploadFile } from "@screen/utils/common"; |
|
|
import { Message } from "element-ui"; |
|
|
import { Message } from "element-ui"; |
|
|
|
|
|
import { getSelectOptionsStation } from "@screen/pages/control/event/businessDataManagement/utils.js"; |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
name: 'DutyOfficer', |
|
|
name: 'DutyOfficer', |
|
@ -163,23 +174,40 @@ export default { |
|
|
{ |
|
|
{ |
|
|
label: "值班日期:", |
|
|
label: "值班日期:", |
|
|
key: "date", |
|
|
key: "date", |
|
|
required: true, |
|
|
required: false, |
|
|
type: "datePicker", |
|
|
type: "datePicker", |
|
|
options: { |
|
|
options: { |
|
|
valueFormat: "yyyy-MM-dd" |
|
|
valueFormat: "yyyy-MM-dd" |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
label: "驻点:", |
|
|
|
|
|
key: "station", |
|
|
|
|
|
type: "select", |
|
|
|
|
|
options: { |
|
|
|
|
|
clearable: true, |
|
|
|
|
|
options: [], |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
], |
|
|
], |
|
|
operateRecordVisible: false, |
|
|
operateRecordVisible: false, |
|
|
modifyDutyInformationTableVisible: false, |
|
|
modifyDutyInformationTableVisible: false, |
|
|
dialogData: null, |
|
|
dialogData: null, |
|
|
isFirst: true, |
|
|
isFirst: true, |
|
|
|
|
|
params: "name", |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
created() { |
|
|
created() { |
|
|
this.getData(); |
|
|
this.getData(); |
|
|
|
|
|
this.getOptions(); |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
async getOptions() { |
|
|
|
|
|
|
|
|
|
|
|
const result = await getSelectOptionsStation(2); |
|
|
|
|
|
|
|
|
|
|
|
this.searchFormList[1].options.options = result; |
|
|
|
|
|
}, |
|
|
handleOperateRecord(bool, data) { |
|
|
handleOperateRecord(bool, data) { |
|
|
this.operateRecordVisible = bool; |
|
|
this.operateRecordVisible = bool; |
|
|
this.dialogData = data; |
|
|
this.dialogData = data; |
|
|