|
|
@ -1,11 +1,8 @@ |
|
|
|
<template> |
|
|
|
<template> |
|
|
|
<cs-page> |
|
|
|
<cs-page> |
|
|
|
<view |
|
|
|
<view class="detail-container" :style="{ |
|
|
|
class="detail-container" |
|
|
|
|
|
|
|
:style="{ |
|
|
|
|
|
|
|
paddingBottom: isSelect.length > 0 ? '140rpx' : '40rpx' |
|
|
|
paddingBottom: isSelect.length > 0 ? '140rpx' : '40rpx' |
|
|
|
}" |
|
|
|
}"> |
|
|
|
> |
|
|
|
|
|
|
|
<view class="box detail"> |
|
|
|
<view class="box detail"> |
|
|
|
<text class="wd-font-800 wd-text-16" style="color: #071437"> |
|
|
|
<text class="wd-font-800 wd-text-16" style="color: #071437"> |
|
|
|
{{ detail.title }} |
|
|
|
{{ detail.title }} |
|
|
@ -19,24 +16,14 @@ |
|
|
|
$dict.echoDicValue(dictMap.task_priority, detail.priority) |
|
|
|
$dict.echoDicValue(dictMap.task_priority, detail.priority) |
|
|
|
}} |
|
|
|
}} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view |
|
|
|
<view v-for="(tag, index) in detail.tagList" :key="index" class="tag"> |
|
|
|
v-for="(tag, index) in detail.tagList" |
|
|
|
|
|
|
|
:key="index" |
|
|
|
|
|
|
|
class="tag" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
{{ tag }} |
|
|
|
{{ tag }} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view |
|
|
|
<view class="wd-flex wd-text-13" style="justify-content: space-between"> |
|
|
|
class="wd-flex wd-text-13" |
|
|
|
|
|
|
|
style="justify-content: space-between" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<view class="wd-flex" style="align-items: center; gap: 8rpx"> |
|
|
|
<view class="wd-flex" style="align-items: center; gap: 8rpx"> |
|
|
|
<u-icon name="calendar" color="#17C653" size="16" /> |
|
|
|
<u-icon name="calendar" color="#17C653" size="16" /> |
|
|
|
<text |
|
|
|
<text class="wd-text-13" style="font-weight: bold; margin-right: 8rpx"> |
|
|
|
class="wd-text-13" |
|
|
|
|
|
|
|
style="font-weight: bold; margin-right: 8rpx" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
{{ |
|
|
|
{{ |
|
|
|
`${$util.formatDate( |
|
|
|
`${$util.formatDate( |
|
|
|
detail.startDate, |
|
|
|
detail.startDate, |
|
|
@ -47,54 +34,40 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<cs-text-more :value="detail.description" /> |
|
|
|
<cs-text-more :value="detail.description" /> |
|
|
|
|
|
|
|
<view class="file-list" v-if="files && files.length > 0"> |
|
|
|
|
|
|
|
<view class="file" v-for="(file, index) in files" :key="index" @click="openFile(file)" |
|
|
|
|
|
|
|
style="cursor: pointer; width: 48%;"> |
|
|
|
|
|
|
|
<u-icon name="attach" color="#17C653" size="16" /> |
|
|
|
|
|
|
|
<text class="name" style="var(--LightMode-Grey-Grey-900, #071437);">{{ file.name }}</text> |
|
|
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
</view> |
|
|
|
<view class="audit"> |
|
|
|
<view class="audit"> |
|
|
|
<cs-dict-tag |
|
|
|
<cs-dict-tag :dict="dictMap.task_state" :value="detail.status"></cs-dict-tag> |
|
|
|
:dict="dictMap.task_state" |
|
|
|
|
|
|
|
:value="detail.status" |
|
|
|
|
|
|
|
></cs-dict-tag> |
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<u-sticky> |
|
|
|
<u-sticky> |
|
|
|
<view |
|
|
|
<view :class="[ |
|
|
|
:class="[ |
|
|
|
|
|
|
|
'options-container', |
|
|
|
'options-container', |
|
|
|
OptionsOffset.isTop ? 'isTop' : '' |
|
|
|
OptionsOffset.isTop ? 'isTop' : '' |
|
|
|
]" |
|
|
|
]" ref="optionRef" id="options"> |
|
|
|
ref="optionRef" |
|
|
|
|
|
|
|
id="options" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<van-dropdown-menu active-color="#17C653" style="flex: 1"> |
|
|
|
<van-dropdown-menu active-color="#17C653" style="flex: 1"> |
|
|
|
<van-dropdown-item |
|
|
|
<van-dropdown-item v-if="showItem(['director'])" :value="queryParams.departmentId" |
|
|
|
v-if="showItem(['director'])" |
|
|
|
:options="dropOption.dept" @change=" |
|
|
|
:value="queryParams.departmentId" |
|
|
|
|
|
|
|
:options="dropOption.dept" |
|
|
|
|
|
|
|
@change=" |
|
|
|
|
|
|
|
v => { |
|
|
|
v => { |
|
|
|
querySelect(v, 'departmentId') |
|
|
|
querySelect(v, 'departmentId') |
|
|
|
} |
|
|
|
} |
|
|
|
" |
|
|
|
" /> |
|
|
|
/> |
|
|
|
<van-dropdown-item v-if="showItem(['queue', 'director'])" :value="queryParams.userId" use-before-toggle |
|
|
|
<van-dropdown-item |
|
|
|
@before-toggle="getUserOption" :options="userList" @change=" |
|
|
|
v-if="showItem(['queue', 'director'])" |
|
|
|
|
|
|
|
:value="queryParams.userId" |
|
|
|
|
|
|
|
use-before-toggle |
|
|
|
|
|
|
|
@before-toggle="getUserOption" |
|
|
|
|
|
|
|
:options="userList" |
|
|
|
|
|
|
|
@change=" |
|
|
|
|
|
|
|
v => { |
|
|
|
v => { |
|
|
|
querySelect(v, 'userId') |
|
|
|
querySelect(v, 'userId') |
|
|
|
} |
|
|
|
} |
|
|
|
" |
|
|
|
" /> |
|
|
|
/> |
|
|
|
<van-dropdown-item :value="queryParams.Inspections_status" :options="dropOption.status" @change=" |
|
|
|
<van-dropdown-item |
|
|
|
|
|
|
|
:value="queryParams.Inspections_status" |
|
|
|
|
|
|
|
:options="dropOption.status" |
|
|
|
|
|
|
|
@change=" |
|
|
|
|
|
|
|
v => { |
|
|
|
v => { |
|
|
|
querySelect(v, 'inspectionsStatus') |
|
|
|
querySelect(v, 'inspectionsStatus') |
|
|
|
} |
|
|
|
} |
|
|
|
" |
|
|
|
" /> |
|
|
|
/> |
|
|
|
|
|
|
|
</van-dropdown-menu> |
|
|
|
</van-dropdown-menu> |
|
|
|
<view style="flex: 0 0 120rpx"> |
|
|
|
<view style="flex: 0 0 120rpx"> |
|
|
|
<text style="color: #17c653">{{ list.length }}</text> |
|
|
|
<text style="color: #17c653">{{ list.length }}</text> |
|
|
@ -102,20 +75,11 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</u-sticky> |
|
|
|
</u-sticky> |
|
|
|
<view |
|
|
|
<view class="record" v-for="record in list" :key="record.id" @tap="goRecord(record)"> |
|
|
|
class="record" |
|
|
|
<view :class="{ |
|
|
|
v-for="record in list" |
|
|
|
|
|
|
|
:key="record.id" |
|
|
|
|
|
|
|
@tap="goRecord(record)" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<view |
|
|
|
|
|
|
|
:class="{ |
|
|
|
|
|
|
|
select: true, |
|
|
|
select: true, |
|
|
|
isSelect: isSelect.includes(record.id) |
|
|
|
isSelect: isSelect.includes(record.id) |
|
|
|
}" |
|
|
|
}" @tap.native.stop="select(record.id)" v-if="['3', null].includes(record.inspectionStatus)"> |
|
|
|
@tap.native.stop="select(record.id)" |
|
|
|
|
|
|
|
v-if="['3', null].includes(record.inspectionStatus)" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<u-icon name="checkbox-mark" size="16" color="#fff"></u-icon> |
|
|
|
<u-icon name="checkbox-mark" size="16" color="#fff"></u-icon> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="disable" v-else></view> |
|
|
|
<view class="disable" v-else></view> |
|
|
@ -123,8 +87,7 @@ |
|
|
|
<view class="name"> |
|
|
|
<view class="name"> |
|
|
|
{{ record.enterpriseName }} |
|
|
|
{{ record.enterpriseName }} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view |
|
|
|
<view style=" |
|
|
|
style=" |
|
|
|
|
|
|
|
font-size: 26rpx; |
|
|
|
font-size: 26rpx; |
|
|
|
padding-right: 3rem; |
|
|
|
padding-right: 3rem; |
|
|
|
margin-bottom: 4rpx; |
|
|
|
margin-bottom: 4rpx; |
|
|
@ -132,44 +95,26 @@ |
|
|
|
text-overflow: ellipsis; |
|
|
|
text-overflow: ellipsis; |
|
|
|
width: 528rpx; |
|
|
|
width: 528rpx; |
|
|
|
overflow: hidden; |
|
|
|
overflow: hidden; |
|
|
|
" |
|
|
|
"> |
|
|
|
> |
|
|
|
|
|
|
|
{{ record.enterpriseAddress }} |
|
|
|
{{ record.enterpriseAddress }} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="tagList" style="margin-top: 16rpx"> |
|
|
|
<view class="tagList" style="margin-top: 16rpx"> |
|
|
|
<view |
|
|
|
<view v-for="(item, index) in record.tagList" :key="index" class="tag"> |
|
|
|
v-for="(item, index) in record.tagList" |
|
|
|
|
|
|
|
:key="index" |
|
|
|
|
|
|
|
class="tag" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
{{ item }} |
|
|
|
{{ item }} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="audit" v-show="record.inspectionStatus"> |
|
|
|
<view class="audit" v-show="record.inspectionStatus"> |
|
|
|
<cs-dict-tag |
|
|
|
<cs-dict-tag :dict="dictMap.Inspections_status" :value="record.inspectionStatus"></cs-dict-tag> |
|
|
|
:dict="dictMap.Inspections_status" |
|
|
|
|
|
|
|
:value="record.inspectionStatus" |
|
|
|
|
|
|
|
></cs-dict-tag> |
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<u-loadmore |
|
|
|
<u-loadmore :status="load" marginTop="12" marginBottom="12" v-if="load != 'nomore'" /> |
|
|
|
:status="load" |
|
|
|
|
|
|
|
marginTop="12" |
|
|
|
|
|
|
|
marginBottom="12" |
|
|
|
|
|
|
|
v-if="load != 'nomore'" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
<view class="btn-box" v-if="isSelect.length > 0"> |
|
|
|
<view class="btn-box" v-if="isSelect.length > 0"> |
|
|
|
<view class="confirm-btn" @tap="replay"> |
|
|
|
<view class="confirm-btn" @tap="replay"> |
|
|
|
已选择({{ isSelect.length }}) |
|
|
|
已选择({{ isSelect.length }}) |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<u-modal |
|
|
|
<u-modal :show="model.show" closeOnClickOverlay @close="closeModel" borderRadius="32rpx"> |
|
|
|
:show="model.show" |
|
|
|
|
|
|
|
closeOnClickOverlay |
|
|
|
|
|
|
|
@close="closeModel" |
|
|
|
|
|
|
|
borderRadius="32rpx" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<view class="wd-flex wd-flex-col" style="gap: 20px"> |
|
|
|
<view class="wd-flex wd-flex-col" style="gap: 20px"> |
|
|
|
<view class="header"> |
|
|
|
<view class="header"> |
|
|
|
<view class="row-1"> |
|
|
|
<view class="row-1"> |
|
|
@ -180,31 +125,17 @@ |
|
|
|
<view class="row-2">每次只能选择一人</view> |
|
|
|
<view class="row-2">每次只能选择一人</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="staff-list"> |
|
|
|
<view class="staff-list"> |
|
|
|
<view |
|
|
|
<view class="staff" v-for="staff in model.list" :key="staff.userId" :style="{ |
|
|
|
class="staff" |
|
|
|
|
|
|
|
v-for="staff in model.list" |
|
|
|
|
|
|
|
:key="staff.userId" |
|
|
|
|
|
|
|
:style="{ |
|
|
|
|
|
|
|
'--select-color': |
|
|
|
'--select-color': |
|
|
|
model.isSelect == staff.userId ? '#17c653' : '#f1f1f4' |
|
|
|
model.isSelect == staff.userId ? '#17c653' : '#f1f1f4' |
|
|
|
}" |
|
|
|
}" @click="selectUser(staff.userId)"> |
|
|
|
@click="selectUser(staff.userId)" |
|
|
|
<u-avatar size="40" shape="circle" :src="staff.avatar"></u-avatar> |
|
|
|
> |
|
|
|
|
|
|
|
<u-avatar |
|
|
|
|
|
|
|
size="40" |
|
|
|
|
|
|
|
shape="circle" |
|
|
|
|
|
|
|
:src="staff.avatar" |
|
|
|
|
|
|
|
></u-avatar> |
|
|
|
|
|
|
|
<view class="info"> |
|
|
|
<view class="info"> |
|
|
|
<view class="name">{{ staff.realName }}</view> |
|
|
|
<view class="name">{{ staff.realName }}</view> |
|
|
|
<view class="dept">{{ staff.roleName[0] }}</view> |
|
|
|
<view class="dept">{{ staff.roleName[0] }}</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="isSelect"> |
|
|
|
<view class="isSelect"> |
|
|
|
<u-icon |
|
|
|
<u-icon name="checkbox-mark" size="16px" color="#fff"></u-icon> |
|
|
|
name="checkbox-mark" |
|
|
|
|
|
|
|
size="16px" |
|
|
|
|
|
|
|
color="#fff" |
|
|
|
|
|
|
|
></u-icon> |
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -220,10 +151,19 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
<script> |
|
|
|
import { getDeptTree, getDictBatchByType } from '@/api/system/dict.js' |
|
|
|
import { |
|
|
|
import { TaskApi } from '@/api/task/index.js' |
|
|
|
getDeptTree, |
|
|
|
import { InspectionsApi } from '@/api/inspections/index.js' |
|
|
|
getDictBatchByType |
|
|
|
import { getUserList } from '@/api/system/user.js' |
|
|
|
} from '@/api/system/dict.js' |
|
|
|
|
|
|
|
import { |
|
|
|
|
|
|
|
TaskApi |
|
|
|
|
|
|
|
} from '@/api/task/index.js' |
|
|
|
|
|
|
|
import { |
|
|
|
|
|
|
|
InspectionsApi |
|
|
|
|
|
|
|
} from '@/api/inspections/index.js' |
|
|
|
|
|
|
|
import { |
|
|
|
|
|
|
|
getUserList |
|
|
|
|
|
|
|
} from '@/api/system/user.js' |
|
|
|
export default { |
|
|
|
export default { |
|
|
|
data() { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
return { |
|
|
@ -232,6 +172,8 @@ export default { |
|
|
|
id: '', |
|
|
|
id: '', |
|
|
|
description: '' |
|
|
|
description: '' |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
// 文件列表 |
|
|
|
|
|
|
|
files: [], |
|
|
|
list: [], |
|
|
|
list: [], |
|
|
|
// 是否展开文本 |
|
|
|
// 是否展开文本 |
|
|
|
isShowAllText: false, |
|
|
|
isShowAllText: false, |
|
|
@ -257,12 +199,10 @@ export default { |
|
|
|
list: [], |
|
|
|
list: [], |
|
|
|
isSelect: '' |
|
|
|
isSelect: '' |
|
|
|
}, |
|
|
|
}, |
|
|
|
userList: [ |
|
|
|
userList: [{ |
|
|
|
{ |
|
|
|
|
|
|
|
value: '', |
|
|
|
value: '', |
|
|
|
text: '按人员' |
|
|
|
text: '按人员' |
|
|
|
} |
|
|
|
}], |
|
|
|
], |
|
|
|
|
|
|
|
// 下拉选项 |
|
|
|
// 下拉选项 |
|
|
|
dropOption: { |
|
|
|
dropOption: { |
|
|
|
dept: [], |
|
|
|
dept: [], |
|
|
@ -292,6 +232,23 @@ export default { |
|
|
|
this.reset() |
|
|
|
this.reset() |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
|
|
|
|
openFile(file) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uni.downloadFile({ |
|
|
|
|
|
|
|
url: file.url, |
|
|
|
|
|
|
|
success: function (res) { |
|
|
|
|
|
|
|
var filePath = res.tempFilePath; |
|
|
|
|
|
|
|
uni.openDocument({ |
|
|
|
|
|
|
|
filePath: filePath, |
|
|
|
|
|
|
|
showMenu: true, |
|
|
|
|
|
|
|
success: function (res) { |
|
|
|
|
|
|
|
console.log('打开文档成功'); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
getOptionOffset() { |
|
|
|
getOptionOffset() { |
|
|
|
const query = uni.createSelectorQuery().in(this) |
|
|
|
const query = uni.createSelectorQuery().in(this) |
|
|
|
query |
|
|
|
query |
|
|
@ -319,8 +276,7 @@ export default { |
|
|
|
dept: dept.data |
|
|
|
dept: dept.data |
|
|
|
} |
|
|
|
} |
|
|
|
this.dropOption = { |
|
|
|
this.dropOption = { |
|
|
|
dept: [ |
|
|
|
dept: [{ |
|
|
|
{ |
|
|
|
|
|
|
|
value: '', |
|
|
|
value: '', |
|
|
|
text: '按部门' |
|
|
|
text: '按部门' |
|
|
|
}, |
|
|
|
}, |
|
|
@ -331,8 +287,7 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
], |
|
|
|
], |
|
|
|
status: [ |
|
|
|
status: [{ |
|
|
|
{ |
|
|
|
|
|
|
|
value: '', |
|
|
|
value: '', |
|
|
|
text: '按状态' |
|
|
|
text: '按状态' |
|
|
|
}, |
|
|
|
}, |
|
|
@ -377,7 +332,10 @@ export default { |
|
|
|
text: d.label |
|
|
|
text: d.label |
|
|
|
} |
|
|
|
} |
|
|
|
}), |
|
|
|
}), |
|
|
|
{ value: '', text: keyMap[key] } |
|
|
|
{ |
|
|
|
|
|
|
|
value: '', |
|
|
|
|
|
|
|
text: keyMap[key] |
|
|
|
|
|
|
|
} |
|
|
|
] |
|
|
|
] |
|
|
|
}, |
|
|
|
}, |
|
|
|
querySelect(v, key) { |
|
|
|
querySelect(v, key) { |
|
|
@ -390,6 +348,7 @@ export default { |
|
|
|
async init() { |
|
|
|
async init() { |
|
|
|
const res = await TaskApi.getDetail(this.detail.id) |
|
|
|
const res = await TaskApi.getDetail(this.detail.id) |
|
|
|
this.detail = res.data |
|
|
|
this.detail = res.data |
|
|
|
|
|
|
|
this.files = res.data.fileList |
|
|
|
}, |
|
|
|
}, |
|
|
|
async getUser() { |
|
|
|
async getUser() { |
|
|
|
const res = await getUserList(this.queryParams.departmentId) |
|
|
|
const res = await getUserList(this.queryParams.departmentId) |
|
|
@ -405,7 +364,9 @@ export default { |
|
|
|
icon: 'loading' |
|
|
|
icon: 'loading' |
|
|
|
}) |
|
|
|
}) |
|
|
|
this.load = 'loading' |
|
|
|
this.load = 'loading' |
|
|
|
const { data } = await InspectionsApi.getList({ |
|
|
|
const { |
|
|
|
|
|
|
|
data |
|
|
|
|
|
|
|
} = await InspectionsApi.getList({ |
|
|
|
...this.queryParams, |
|
|
|
...this.queryParams, |
|
|
|
taskId: this.detail.id |
|
|
|
taskId: this.detail.id |
|
|
|
}) |
|
|
|
}) |
|
|
@ -414,13 +375,15 @@ export default { |
|
|
|
if (this.list.length == data.total) { |
|
|
|
if (this.list.length == data.total) { |
|
|
|
this.load = 'nomore' |
|
|
|
this.load = 'nomore' |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
uni.stopPullDownRefresh() |
|
|
|
uni.stopPullDownRefresh() |
|
|
|
uni.hideToast() |
|
|
|
uni.hideToast() |
|
|
|
}, |
|
|
|
}, |
|
|
|
getUserOption({ detail }) { |
|
|
|
getUserOption({ |
|
|
|
|
|
|
|
detail |
|
|
|
|
|
|
|
}) { |
|
|
|
this.getUser().then(res => { |
|
|
|
this.getUser().then(res => { |
|
|
|
this.userList = [ |
|
|
|
this.userList = [{ |
|
|
|
{ |
|
|
|
|
|
|
|
value: '', |
|
|
|
value: '', |
|
|
|
text: '按人员' |
|
|
|
text: '按人员' |
|
|
|
}, |
|
|
|
}, |
|
|
@ -520,18 +483,21 @@ export default { |
|
|
|
.detail-container { |
|
|
|
.detail-container { |
|
|
|
position: relative; |
|
|
|
position: relative; |
|
|
|
color: $cs-color-grey; |
|
|
|
color: $cs-color-grey; |
|
|
|
|
|
|
|
|
|
|
|
.box { |
|
|
|
.box { |
|
|
|
margin: 12px; |
|
|
|
margin: 12px; |
|
|
|
background-color: #fff; |
|
|
|
background-color: #fff; |
|
|
|
border-radius: $cs-border-radius; |
|
|
|
border-radius: $cs-border-radius; |
|
|
|
padding: 16px; |
|
|
|
padding: 16px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.detail { |
|
|
|
.detail { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
flex-flow: column nowrap; |
|
|
|
flex-flow: column nowrap; |
|
|
|
gap: 12px; |
|
|
|
gap: 12px; |
|
|
|
position: relative; |
|
|
|
position: relative; |
|
|
|
overflow: hidden; |
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
|
|
|
|
.audit { |
|
|
|
.audit { |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
|
right: 0; |
|
|
|
right: 0; |
|
|
@ -539,7 +505,38 @@ export default { |
|
|
|
transform: translateX(58rpx) translateY(24rpx) rotateZ(45deg); |
|
|
|
transform: translateX(58rpx) translateY(24rpx) rotateZ(45deg); |
|
|
|
transform-origin: 50% 50%; |
|
|
|
transform-origin: 50% 50%; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.file-list { |
|
|
|
|
|
|
|
border-radius: 4px; |
|
|
|
|
|
|
|
background: var(--LightMode-Grey-Grey-100, #F9F9F9); |
|
|
|
|
|
|
|
padding: 8rpx 16rpx; |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
flex-wrap: wrap; |
|
|
|
|
|
|
|
gap: 24rpx; |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.file { |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
flex-flow:row nowarp; |
|
|
|
|
|
|
|
gap:8rpx; |
|
|
|
|
|
|
|
.name { |
|
|
|
|
|
|
|
color: var(--LightMode-Grey-Grey-900, #071437); |
|
|
|
|
|
|
|
font-family: "PingFang SC"; |
|
|
|
|
|
|
|
font-size: 24rpx; |
|
|
|
|
|
|
|
font-style: normal; |
|
|
|
|
|
|
|
font-weight: 400; |
|
|
|
|
|
|
|
line-height: normal; |
|
|
|
|
|
|
|
text-decoration-line: underline; |
|
|
|
|
|
|
|
text-decoration-style: solid; |
|
|
|
|
|
|
|
text-decoration-skip-ink: auto; |
|
|
|
|
|
|
|
text-decoration-thickness: auto; |
|
|
|
|
|
|
|
text-underline-offset: auto; |
|
|
|
|
|
|
|
text-underline-position: from-font; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.record { |
|
|
|
.record { |
|
|
|
background-color: #fff; |
|
|
|
background-color: #fff; |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
@ -551,6 +548,7 @@ export default { |
|
|
|
margin-top: 0; |
|
|
|
margin-top: 0; |
|
|
|
position: relative; |
|
|
|
position: relative; |
|
|
|
overflow: hidden; |
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
|
|
|
|
.audit { |
|
|
|
.audit { |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
|
right: 0; |
|
|
|
right: 0; |
|
|
@ -558,6 +556,7 @@ export default { |
|
|
|
transform-origin: 50% 50%; |
|
|
|
transform-origin: 50% 50%; |
|
|
|
transform: translateX(64rpx) translateY(18rpx) rotateZ(45deg); |
|
|
|
transform: translateX(64rpx) translateY(18rpx) rotateZ(45deg); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.select { |
|
|
|
.select { |
|
|
|
width: 44rpx; |
|
|
|
width: 44rpx; |
|
|
|
height: 44rpx; |
|
|
|
height: 44rpx; |
|
|
@ -569,6 +568,7 @@ export default { |
|
|
|
transition: 0.2s all; |
|
|
|
transition: 0.2s all; |
|
|
|
margin-right: 32rpx; |
|
|
|
margin-right: 32rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.disable { |
|
|
|
.disable { |
|
|
|
width: 44rpx; |
|
|
|
width: 44rpx; |
|
|
|
height: 44rpx; |
|
|
|
height: 44rpx; |
|
|
@ -576,6 +576,7 @@ export default { |
|
|
|
margin-right: 32rpx; |
|
|
|
margin-right: 32rpx; |
|
|
|
border-radius: 100%; |
|
|
|
border-radius: 100%; |
|
|
|
position: relative; |
|
|
|
position: relative; |
|
|
|
|
|
|
|
|
|
|
|
&::after { |
|
|
|
&::after { |
|
|
|
content: ''; |
|
|
|
content: ''; |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
@ -585,11 +586,14 @@ export default { |
|
|
|
transform: translateX(calc(50% - 2rpx)) rotateZ(45deg); |
|
|
|
transform: translateX(calc(50% - 2rpx)) rotateZ(45deg); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.isSelect { |
|
|
|
.isSelect { |
|
|
|
background-color: $cs-color-main; |
|
|
|
background-color: $cs-color-main; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.info { |
|
|
|
.info { |
|
|
|
font-size: 26rpx; |
|
|
|
font-size: 26rpx; |
|
|
|
|
|
|
|
|
|
|
|
.name { |
|
|
|
.name { |
|
|
|
font-size: 32rpx; |
|
|
|
font-size: 32rpx; |
|
|
|
font-weight: 600; |
|
|
|
font-weight: 600; |
|
|
@ -601,6 +605,7 @@ export default { |
|
|
|
overflow: hidden; |
|
|
|
overflow: hidden; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
&:active { |
|
|
|
&:active { |
|
|
|
background-color: $cs-color-touch; |
|
|
|
background-color: $cs-color-touch; |
|
|
|
} |
|
|
|
} |
|
|
@ -616,6 +621,7 @@ export default { |
|
|
|
bottom: 0; |
|
|
|
bottom: 0; |
|
|
|
left: 0; |
|
|
|
left: 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.confirm-btn { |
|
|
|
.confirm-btn { |
|
|
|
background-color: $cs-color-main; |
|
|
|
background-color: $cs-color-main; |
|
|
|
padding: 12px 40px; |
|
|
|
padding: 12px 40px; |
|
|
@ -624,25 +630,30 @@ export default { |
|
|
|
font-weight: 600; |
|
|
|
font-weight: 600; |
|
|
|
border-radius: 120px; |
|
|
|
border-radius: 120px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.header { |
|
|
|
.header { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
flex-flow: column nowrap; |
|
|
|
flex-flow: column nowrap; |
|
|
|
justify-content: center; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
gap: 4px; |
|
|
|
gap: 4px; |
|
|
|
|
|
|
|
|
|
|
|
.row-1 { |
|
|
|
.row-1 { |
|
|
|
font-size: 16px; |
|
|
|
font-size: 16px; |
|
|
|
font-weight: 600; |
|
|
|
font-weight: 600; |
|
|
|
color: #071437; |
|
|
|
color: #071437; |
|
|
|
|
|
|
|
|
|
|
|
.num { |
|
|
|
.num { |
|
|
|
color: $cs-color-main; |
|
|
|
color: $cs-color-main; |
|
|
|
padding: 0 4px; |
|
|
|
padding: 0 4px; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.row-2 { |
|
|
|
.row-2 { |
|
|
|
color: $cs-color-grey; |
|
|
|
color: $cs-color-grey; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.staff-list { |
|
|
|
.staff-list { |
|
|
|
width: 70vw; |
|
|
|
width: 70vw; |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
@ -650,6 +661,7 @@ export default { |
|
|
|
gap: 12px; |
|
|
|
gap: 12px; |
|
|
|
max-height: 30vh; |
|
|
|
max-height: 30vh; |
|
|
|
overflow-y: scroll; |
|
|
|
overflow-y: scroll; |
|
|
|
|
|
|
|
|
|
|
|
.staff { |
|
|
|
.staff { |
|
|
|
width: calc(50% - 6px); |
|
|
|
width: calc(50% - 6px); |
|
|
|
padding: 12px; |
|
|
|
padding: 12px; |
|
|
@ -658,26 +670,27 @@ export default { |
|
|
|
position: relative; |
|
|
|
position: relative; |
|
|
|
gap: 8px; |
|
|
|
gap: 8px; |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
|
|
|
|
|
|
|
|
.info { |
|
|
|
.info { |
|
|
|
.name { |
|
|
|
.name { |
|
|
|
font-size: 30rpx; |
|
|
|
font-size: 30rpx; |
|
|
|
font-weight: bold; |
|
|
|
font-weight: bold; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.dept { |
|
|
|
.dept { |
|
|
|
color: $cs-color-grey; |
|
|
|
color: $cs-color-grey; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.isSelect { |
|
|
|
.isSelect { |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
|
right: 0; |
|
|
|
right: 0; |
|
|
|
top: 0; |
|
|
|
top: 0; |
|
|
|
width: 30px; |
|
|
|
width: 30px; |
|
|
|
height: 30px; |
|
|
|
height: 30px; |
|
|
|
background-image: linear-gradient( |
|
|
|
background-image: linear-gradient(45deg, |
|
|
|
45deg, |
|
|
|
|
|
|
|
rgba(255, 255, 255, 0) 50%, |
|
|
|
rgba(255, 255, 255, 0) 50%, |
|
|
|
var(--select-color, #f1f1f4) 50% |
|
|
|
var(--select-color, #f1f1f4) 50%); |
|
|
|
); |
|
|
|
|
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
justify-content: flex-end; |
|
|
|
justify-content: flex-end; |
|
|
|
align-items: flex-start; |
|
|
|
align-items: flex-start; |
|
|
@ -685,6 +698,7 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.options-container { |
|
|
|
.options-container { |
|
|
|
overflow: hidden; |
|
|
|
overflow: hidden; |
|
|
|
margin: 12px; |
|
|
|
margin: 12px; |
|
|
@ -698,23 +712,28 @@ export default { |
|
|
|
background-color: #fff; |
|
|
|
background-color: #fff; |
|
|
|
border-bottom: 1px solid #f1f1f4; |
|
|
|
border-bottom: 1px solid #f1f1f4; |
|
|
|
color: #071437; |
|
|
|
color: #071437; |
|
|
|
|
|
|
|
|
|
|
|
::v-deep .van-dropdown-menu { |
|
|
|
::v-deep .van-dropdown-menu { |
|
|
|
background-color: transparent; |
|
|
|
background-color: transparent; |
|
|
|
box-shadow: none; |
|
|
|
box-shadow: none; |
|
|
|
--dropdown-menu-title-font-size: 13px; |
|
|
|
--dropdown-menu-title-font-size: 13px; |
|
|
|
--dropdown-menu-title-text-color: #071437; |
|
|
|
--dropdown-menu-title-text-color: #071437; |
|
|
|
|
|
|
|
|
|
|
|
.van-dropdown-menu__item { |
|
|
|
.van-dropdown-menu__item { |
|
|
|
flex: 0; |
|
|
|
flex: 0; |
|
|
|
|
|
|
|
|
|
|
|
.van-dropdown-menu__title { |
|
|
|
.van-dropdown-menu__title { |
|
|
|
width: 80px; |
|
|
|
width: 80px; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.isTop { |
|
|
|
.isTop { |
|
|
|
margin: 12px 0; |
|
|
|
margin: 12px 0; |
|
|
|
border-radius: 0px; |
|
|
|
border-radius: 0px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
::v-deep .u-popup__content { |
|
|
|
::v-deep .u-popup__content { |
|
|
|
border-radius: 32rpx; |
|
|
|
border-radius: 32rpx; |
|
|
|
} |
|
|
|
} |
|
|
|