Commit c8706357 by pangchong

feat: 代码功能完善

parent e6b4a02d
...@@ -4,6 +4,20 @@ import { defineStore } from 'pinia' ...@@ -4,6 +4,20 @@ import { defineStore } from 'pinia'
const useAppraisalRecordStore = defineStore('appraisalRecord', { const useAppraisalRecordStore = defineStore('appraisalRecord', {
state: () => { state: () => {
return { return {
searchData: {
status: 1,
valid: null,
department: '',
appraisee: '',
ac: null,
acOwn: '',
acType: '',
startTime: null,
stopTime: null,
eventType: null,
examineType: '',
appealInfo: null
},
selectList: { selectList: {
appraisee: [], appraisee: [],
department: [], department: [],
...@@ -35,6 +49,22 @@ const useAppraisalRecordStore = defineStore('appraisalRecord', { ...@@ -35,6 +49,22 @@ const useAppraisalRecordStore = defineStore('appraisalRecord', {
uni.$mocpMessage.error(res.message) uni.$mocpMessage.error(res.message)
} }
}, },
resetForm() {
this.searchData = {
status: 1,
valid: null,
department: '',
appraisee: '',
ac: null,
acOwn: '',
acType: '',
startTime: null,
stopTime: null,
eventType: null,
examineType: '',
appealInfo: null
}
},
setState(...args) { setState(...args) {
this.$patch({ [args[0]]: args[1] }) this.$patch({ [args[0]]: args[1] })
} }
......
...@@ -13,6 +13,14 @@ const arrangeWorkExtendRouter = [ ...@@ -13,6 +13,14 @@ const arrangeWorkExtendRouter = [
const useAssignWorkStore = defineStore('assignWork', { const useAssignWorkStore = defineStore('assignWork', {
state: () => { state: () => {
return { return {
searchData: {
state: null,
presenter: '',
seat: '',
workType: 1,
startTime: null,
stopTime: null
},
id: '', id: '',
details: undefined, details: undefined,
arrangeWorkExtendList: [], //责任单位列表 arrangeWorkExtendList: [], //责任单位列表
...@@ -111,11 +119,31 @@ const useAssignWorkStore = defineStore('assignWork', { ...@@ -111,11 +119,31 @@ const useAssignWorkStore = defineStore('assignWork', {
uni.$mocpMessage.error(res.message) uni.$mocpMessage.error(res.message)
} }
}, },
resetForm() {
this.searchData = {
state: null,
presenter: '',
seat: '',
workType: 1,
startTime: null,
stopTime: null
}
},
setState(...args) { setState(...args) {
this.$patch({ [args[0]]: args[1] }) this.$patch({ [args[0]]: args[1] })
} }
}, },
// 配置持久化 // 配置持久化
persist: false persist: {
// 调整为兼容多端的API
storage: {
setItem(key, value) {
uni.setStorageSync(key, value)
},
getItem(key) {
return uni.getStorageSync(key)
}
}
}
}) })
export default useAssignWorkStore export default useAssignWorkStore
...@@ -3,6 +3,14 @@ import { defineStore } from 'pinia' ...@@ -3,6 +3,14 @@ import { defineStore } from 'pinia'
const useMoveDecisionStore = defineStore('moveDecision', { const useMoveDecisionStore = defineStore('moveDecision', {
state: () => { state: () => {
return { return {
searchData: {
state: 1,
presenter: '',
seat: '',
workType: null,
startDateTime: null,
endDateTime: null
},
details: undefined details: undefined
} }
}, },
...@@ -12,21 +20,21 @@ const useMoveDecisionStore = defineStore('moveDecision', { ...@@ -12,21 +20,21 @@ const useMoveDecisionStore = defineStore('moveDecision', {
} }
}, },
actions: { actions: {
resetForm() {
this.searchData = {
state: 1,
presenter: '',
seat: '',
workType: null,
startDateTime: null,
endDateTime: null
}
},
setState(...args) { setState(...args) {
this.$patch({ [args[0]]: args[1] }) this.$patch({ [args[0]]: args[1] })
} }
}, },
// 配置持久化 // 配置持久化
persist: { persist: false
// 调整为兼容多端的API
storage: {
setItem(key, value) {
uni.setStorageSync(key, value)
},
getItem(key) {
return uni.getStorageSync(key)
}
}
}
}) })
export default useMoveDecisionStore export default useMoveDecisionStore
...@@ -3,26 +3,35 @@ import { defineStore } from 'pinia' ...@@ -3,26 +3,35 @@ import { defineStore } from 'pinia'
const useTechnologyEvaluationStore = defineStore('technologyEvaluation', { const useTechnologyEvaluationStore = defineStore('technologyEvaluation', {
state: () => { state: () => {
return { return {
searchData: {
state: 1,
ac: '',
model: '',
ata: '',
startDateTime: null,
endDateTime: null
},
details: undefined details: undefined
} }
}, },
getters: {}, getters: {},
actions: { actions: {
resetForm() {
this.searchData = {
state: 1,
ac: '',
model: '',
aviation: '',
ata: '',
startDateTime: null,
endDateTime: null
}
},
setState(...args) { setState(...args) {
this.$patch({ [args[0]]: args[1] }) this.$patch({ [args[0]]: args[1] })
} }
}, },
// 配置持久化 // 配置持久化
persist: { persist: false
// 调整为兼容多端的API
storage: {
setItem(key, value) {
uni.setStorageSync(key, value)
},
getItem(key) {
return uni.getStorageSync(key)
}
}
}
}) })
export default useTechnologyEvaluationStore export default useTechnologyEvaluationStore
...@@ -8,7 +8,7 @@ const menuList = ref([ ...@@ -8,7 +8,7 @@ const menuList = ref([
{ id: 5, name: '技术评估', icon: 'jspg', group: '技术支援', count: 0, url: '/panel/technology-evaluation/list' }, { id: 5, name: '技术评估', icon: 'jspg', group: '技术支援', count: 0, url: '/panel/technology-evaluation/list' },
{ id: 6, name: '运行调查', icon: 'yxdc', group: '维修控制', count: 0 }, { id: 6, name: '运行调查', icon: 'yxdc', group: '维修控制', count: 0 },
{ id: 7, name: '运行决策', icon: 'yxjc', group: '维修控制', count: 0, url: '/panel/move-decision/list' }, { id: 7, name: '运行决策', icon: 'yxjc', group: '维修控制', count: 0, url: '/panel/move-decision/list' },
{ id: 8, name: '布置工作', icon: 'bzgz', group: '维修控制', count: 0, url: '/panel/assign-work/list' }, { id: 8, name: '布置工作', icon: 'bzgz', group: '维修控制', count: 0, url: '/panel/assign-work/search' },
{ id: 9, name: '航站管理', icon: 'hzgl', group: '航站管理', count: 0 }, { id: 9, name: '航站管理', icon: 'hzgl', group: '航站管理', count: 0 },
{ id: 10, name: '协议单位', icon: 'xydw', group: '航站管理', count: 0 }, { id: 10, name: '协议单位', icon: 'xydw', group: '航站管理', count: 0 },
{ id: 11, name: '不正常事件', icon: 'bzcsj', group: '运行品质', count: 0 }, { id: 11, name: '不正常事件', icon: 'bzcsj', group: '运行品质', count: 0 },
......
...@@ -75,12 +75,18 @@ ...@@ -75,12 +75,18 @@
} }
}, },
{ {
"path": "pages/modules/mocp/panel/appraisal-record/edit", "path": "pages/modules/mocp/panel/appraisal-record/edit-rqm-opinion",
"style": { "style": {
"navigationBarTitleText": "" "navigationBarTitleText": ""
} }
}, },
{ {
"path": "pages/modules/mocp/panel/appraisal-record/edit-rqm-data",
"style": {
"navigationBarTitleText": "申诉状态"
}
},
{
"path": "pages/modules/mocp/panel/assign-work/list", "path": "pages/modules/mocp/panel/assign-work/list",
"style": { "style": {
"navigationBarTitleText": "布置工作" "navigationBarTitleText": "布置工作"
......
import { reactive, ref } from 'vue'
export const formRef = ref()
export const fileList = ref([])
// 校验规则
export const rules = reactive({
eventTime: [
{
type: 'number',
required: true,
message: '请选择日期',
trigger: ['blur', 'change']
}
]
})
// 表单数据
export const formData = reactive({
id: '',
ac: '',
acOwn: '',
acType: '',
appealInfo: '-1',
appraisee: '-1',
department: '-1',
dmUid: '-1',
eventMsg: '',
eventSource: '',
eventTime: -1,
eventType: -1,
examineBasis: '',
examineType: '-1',
onDutyUser: '',
opinionMsg: '',
opinionType: -1,
score: null,
qmUid: '',
qualityOpinionMsg: '',
qualityOpinionType: -1,
status: '',
emailSendTime: -1,
file: []
})
import { getAcReduceListApi } from 'mocp/api/base'
import { formData } from './edit.compositions'
//切换机号
export const changeAc = async () => {
const res = await getAcReduceListApi({ ac: formData.ac }, { loading: true })
if (res.code == 200) {
formData.acOwn = res.data[0]?.zop3
formData.acType = res.data[0]?.zstortgc
} else {
uni.$mocpMessage.error(res.message)
}
}
import { ref } from 'vue'
export const formRef = ref()
// 表单数据
export const formData = ref({
status: 1,
valid: null,
department: '',
appraisee: '',
ac: null,
acOwn: '',
acType: '',
startTime: null,
stopTime: null,
eventType: null,
examineType: '',
appealInfo: null
})
import { toRaw } from 'vue'
import { formData, formRef } from './search.compositions'
export const handleReset = () => {
formData.value = {
status: 1,
valid: null,
department: '',
appraisee: '',
ac: null,
acOwn: '',
acType: '',
startTime: null,
stopTime: null,
eventType: null,
examineType: '',
appealInfo: null
}
formRef.value?.resetFields()
handleConfirm()
}
export const handleConfirm = () => {
uni.$mocpJump.navigateBack()
uni.$emit('appraisalRecordReload', { params: toRaw(formData.value) })
}
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
</view> </view>
</view> </view>
<custom-card-details <custom-card-details
title="公司值班信息" title="公司值班经理意见"
showfooter showfooter
:idcard="details.dmName" :idcard="details.dmName"
:calendar="details.optionSaveTime" :calendar="details.optionSaveTime"
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<custom-card-details-item label="公司值班经理意见描述" :value="details.dmMsg || '-'"></custom-card-details-item> <custom-card-details-item label="公司值班经理意见描述" :value="details.dmMsg || '-'"></custom-card-details-item>
</custom-card-details> </custom-card-details>
<custom-card-details <custom-card-details
title="品质中心信息" title="品质中心经理意见"
showfooter showfooter
:idcard="details.qmName" :idcard="details.qmName"
:calendar="details.qualitySaveTime" :calendar="details.qualitySaveTime"
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
></custom-card-details-item> ></custom-card-details-item>
<custom-card-details-item label="品质中心经理意见描述" :value="details.qmMsg || '-'"></custom-card-details-item> <custom-card-details-item label="品质中心经理意见描述" :value="details.qmMsg || '-'"></custom-card-details-item>
</custom-card-details> </custom-card-details>
<custom-card-details title="申诉状态" titleIcon="email"> <custom-card-details title="申诉状态" titleIcon="email" edit @handleAdd="editRqmData()">
<view class="appeal-status">{{ useGetDictByValue('ar_appealInfo', details.appealInfo) }}</view> <view class="appeal-status">{{ useGetDictByValue('ar_appealInfo', details.appealInfo) }}</view>
<global-upload :fileList="getFileList" :showUpload="false"></global-upload> <global-upload :fileList="getFileList" :showUpload="false"></global-upload>
</custom-card-details> </custom-card-details>
...@@ -110,15 +110,16 @@ const handleAdd = (isDuty) => { ...@@ -110,15 +110,16 @@ const handleAdd = (isDuty) => {
let realName = '' let realName = ''
if (isDuty == 0) { if (isDuty == 0) {
params = { id: details.value.id, isDuty, mid: details.value.dmUid, opinionType: details.value.opinionType, msg: details.value.dmMsg } params = { id: details.value.id, isDuty, mid: details.value.dmUid, opinionType: details.value.opinionType, msg: details.value.dmMsg }
realName = details.value.dmName
} else { } else {
params = { id: details.value.id, isDuty, mid: details.value.qmUid, opinionType: details.value.qualityOpinionType, msg: details.value.qmMsg } params = { id: details.value.id, isDuty, mid: details.value.qmUid, opinionType: details.value.qualityOpinionType, msg: details.value.qmMsg }
realName = details.value.qmName
} }
uni.$mocpJump.navigateTo('/panel/appraisal-record/edit').then(() => { uni.$mocpJump.navigateTo('/panel/appraisal-record/edit-rqm-opinion').then(() => {
uni.$emit('appraisalRecordEdit', params, realName) uni.$emit('appraisalRecordOpinionEdit', params, realName)
}) })
} }
const editRqmData = () => {
uni.$mocpJump.navigateTo('/panel/appraisal-record/edit-rqm-data')
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './constants/details.scss'; @import './constants/details.scss';
......
<template>
<global-page title="申诉状态" showFooterBtn @handleFooterClick="handleSubmit">
<view class="mocp-form">
<up-form labelPosition="left" labelWidth="auto" :model="formData" :rules="rules" ref="formRef">
<up-form-item label="申诉情况" :borderBottom="true">
<global-picker pickAlign="right" dictkey="ar_appealInfo" v-model="formData.appealInfo" clearable :emptyValue="-1"></global-picker>
</up-form-item>
<up-form-item label="申诉附件" :borderBottom="true" labelPosition="top">
<view style="margin-top: 24rpx">
<global-upload :fileList="getFileList" v-model="formData.file"></global-upload>
</view>
</up-form-item>
</up-form>
</view>
</global-page>
</template>
<script setup>
import { onShow } from '@dcloudio/uni-app'
import useAppraisalRecordStore from 'mocp/store/appraisal-record'
import { storeToRefs } from 'pinia'
import { updateRqmDataApi } from 'mocp/api/appraisal-record'
import { reactive } from 'vue'
import { cloneDeep } from 'lodash'
const appraisalRecordStore = useAppraisalRecordStore()
const { details, getFileList } = storeToRefs(appraisalRecordStore)
// 表单数据
const formData = reactive({
id: '',
ac: '',
acOwn: '',
acType: '',
appealInfo: '-1',
appraisee: '-1',
department: '-1',
dmUid: '-1',
eventMsg: '',
eventSource: '',
eventTime: -1,
eventType: -1,
examineBasis: '',
examineType: '-1',
onDutyUser: '',
opinionMsg: '',
opinionType: -1,
score: null,
qmUid: '',
qualityOpinionMsg: '',
qualityOpinionType: -1,
status: '',
emailSendTime: -1,
file: []
})
// 页面初始化
onShow(() => {
Object.assign(formData, cloneDeep(details.value))
})
//提交表单
const handleSubmit = async () => {
const params = { ...formData, file: JSON.stringify(formData.file) }
const res = await updateRqmDataApi(params, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
appraisalRecordStore.getRqmDetails()
uni.$mocpMessage.success(res.message)
} else {
uni.$mocpMessage.error(res.message)
}
}
</script>
<style lang="scss" scoped>
.mocp-form {
background: #fff;
padding: 0 32rpx;
}
</style>
...@@ -58,7 +58,7 @@ const formData = reactive({ ...@@ -58,7 +58,7 @@ const formData = reactive({
//获取下拉框列表 //获取下拉框列表
const selectList = ref([]) const selectList = ref([])
onLoad(() => { onLoad(() => {
uni.$once('appraisalRecordEdit', (data, realName) => { uni.$once('appraisalRecordOpinionEdit', (data) => {
Object.assign(formData, data) Object.assign(formData, data)
baseStore.getAdminList().then((res) => { baseStore.getAdminList().then((res) => {
selectList.value = res selectList.value = res
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
isDataList isDataList
refresherEnabled refresherEnabled
loadingMoreEnabled loadingMoreEnabled
:params="searchParams" :params="searchData"
:api="getRqmListApi" :api="getRqmListApi"
auto auto
ref="paging" ref="paging"
...@@ -37,6 +37,7 @@ import { ref } from 'vue' ...@@ -37,6 +37,7 @@ import { ref } from 'vue'
import { getRqmListApi } from 'mocp/api/appraisal-record' import { getRqmListApi } from 'mocp/api/appraisal-record'
import { onLoad, onUnload } from '@dcloudio/uni-app' import { onLoad, onUnload } from '@dcloudio/uni-app'
import useAppraisalRecordStore from 'mocp/store/appraisal-record' import useAppraisalRecordStore from 'mocp/store/appraisal-record'
import { storeToRefs } from 'pinia'
//跳转 //跳转
const goDetails = (data) => { const goDetails = (data) => {
...@@ -46,6 +47,7 @@ const goDetails = (data) => { ...@@ -46,6 +47,7 @@ const goDetails = (data) => {
} }
//加载下拉框数据 //加载下拉框数据
const appraisalRecordStore = useAppraisalRecordStore() const appraisalRecordStore = useAppraisalRecordStore()
const { searchData } = storeToRefs(appraisalRecordStore)
onLoad(() => { onLoad(() => {
appraisalRecordStore.getRqmOptions() appraisalRecordStore.getRqmOptions()
}) })
...@@ -53,15 +55,8 @@ onLoad(() => { ...@@ -53,15 +55,8 @@ onLoad(() => {
const handleRightClick = () => { const handleRightClick = () => {
uni.$mocpJump.navigateTo('/panel/appraisal-record/search') uni.$mocpJump.navigateTo('/panel/appraisal-record/search')
} }
//刷新
const searchParams = ref({
status: 1
})
const paging = ref() const paging = ref()
uni.$on('appraisalRecordReload', ({ params }) => { uni.$on('appraisalRecordReload', () => {
if (params) {
searchParams.value = params
}
paging.value?.reload() paging.value?.reload()
}) })
onUnload(() => { onUnload(() => {
......
<template> <template>
<global-page title="筛选"> <global-page title="筛选">
<view class="search-form"> <view class="search-form">
<up-form labelPosition="left" labelWidth="auto" :model="formData" ref="formRef"> <up-form labelPosition="left" labelWidth="auto" :model="formData">
<up-form-item label="状态" prop="status" :borderBottom="true"> <up-form-item label="状态" prop="status" :borderBottom="true">
<global-picker <global-picker
v-model="formData.status" v-model="formData.status"
...@@ -60,17 +60,33 @@ ...@@ -60,17 +60,33 @@
</template> </template>
<script setup> <script setup>
import { formData, formRef } from './constants/search.compositions'
import useBaseStore from 'mocp/store/base' import useBaseStore from 'mocp/store/base'
import useAppraisalRecordStore from 'mocp/store/appraisal-record' import useAppraisalRecordStore from 'mocp/store/appraisal-record'
import { handleConfirm, handleReset } from './constants/search.functionals' import { storeToRefs } from 'pinia'
import { cloneDeep } from 'lodash'
import { ref } from 'vue'
//获取下拉框选项 //获取下拉框选项
const { const {
selectList: { deviceNumList } selectList: { deviceNumList }
} = useBaseStore() } = useBaseStore()
const appraisalRecordStore = useAppraisalRecordStore()
const { const {
selectList: { appraisee, department } selectList: { appraisee, department }
} = useAppraisalRecordStore() } = appraisalRecordStore
//获取查询表单数据
const { searchData } = storeToRefs(appraisalRecordStore)
const formData = ref(cloneDeep(searchData.value))
const handleReset = () => {
appraisalRecordStore.resetForm()
uni.$mocpJump.navigateBack()
uni.$emit('appraisalRecordReload')
}
const handleConfirm = () => {
appraisalRecordStore.setState('searchData', formData.value)
uni.$mocpJump.navigateBack()
uni.$emit('appraisalRecordReload')
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search-form { .search-form {
......
...@@ -19,10 +19,6 @@ ...@@ -19,10 +19,6 @@
</view> </view>
</view> </view>
<view class="details-header-center"> <view class="details-header-center">
<view class="left">
<global-icon icon="mind-mapping"></global-icon>
<global-field class="txt" label="工作台编号:" :value="details.workbench || '-'"></global-field>
</view>
<view class="right"> <view class="right">
<text>{{ details.seat }}</text> <text>{{ details.seat }}</text>
<text class="txt">{{ baseStore.getParamNameByValue('LayoutWorkType', details.workType) }}</text> <text class="txt">{{ baseStore.getParamNameByValue('LayoutWorkType', details.workType) }}</text>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
loadingMoreEnabled loadingMoreEnabled
auto auto
ref="paging" ref="paging"
:params="searchParams" :params="searchData"
:api="getArrangeWorkListApi" :api="getArrangeWorkListApi"
:padding="24" :padding="24"
showNavRight showNavRight
...@@ -52,6 +52,7 @@ import { getArrangeWorkListApi } from 'mocp/api/assign-work' ...@@ -52,6 +52,7 @@ import { getArrangeWorkListApi } from 'mocp/api/assign-work'
import useAssignWorkStore from 'mocp/store/assign-work' import useAssignWorkStore from 'mocp/store/assign-work'
import { onLoad, onUnload } from '@dcloudio/uni-app' import { onLoad, onUnload } from '@dcloudio/uni-app'
import { ref } from 'vue' import { ref } from 'vue'
import { storeToRefs } from 'pinia'
const baseStore = useBaseStore() const baseStore = useBaseStore()
//加载下拉框数据 //加载下拉框数据
...@@ -60,20 +61,17 @@ onLoad(() => { ...@@ -60,20 +61,17 @@ onLoad(() => {
assignWorkStore.getSeatUnit() assignWorkStore.getSeatUnit()
}) })
//跳转 //跳转
const { searchData } = storeToRefs(assignWorkStore)
const goDetails = (data) => { const goDetails = (data) => {
uni.$mocpJump.navigateTo('/panel/assign-work/details', { id: data.id }) uni.$mocpJump.navigateTo('/panel/assign-work/details', { id: data.id })
} }
//筛选 //筛选
const handleRightClick = () => { const handleRightClick = () => {
uni.$mocpJump.navigateTo('/panel/assign-work/search') uni.$mocpJump.redirectTo('/panel/assign-work/search')
} }
//刷新 //刷新
const searchParams = ref()
const paging = ref() const paging = ref()
uni.$on('assignWorkReload', ({ params }) => { uni.$on('assignWorkReload', () => {
if (params) {
searchParams.value = params
}
paging.value?.reload() paging.value?.reload()
}) })
onUnload(() => { onUnload(() => {
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
pickAlign="right" pickAlign="right"
:options="baseStore.getParamsByType('LayoutWorkType')" :options="baseStore.getParamsByType('LayoutWorkType')"
clearable clearable
filter
></global-picker> ></global-picker>
</up-form-item> </up-form-item>
<up-form-item label="开始日期" :borderBottom="true"> <up-form-item label="开始日期" :borderBottom="true">
...@@ -58,14 +57,28 @@ ...@@ -58,14 +57,28 @@
</template> </template>
<script setup> <script setup>
import { formData, formRef } from './constants/search.compositions'
import useBaseStore from 'mocp/store/base' import useBaseStore from 'mocp/store/base'
import useAssignWorkStore from 'mocp/store/assign-work' import useAssignWorkStore from 'mocp/store/assign-work'
import { handleConfirm, handleReset } from './constants/search.functionals' import { storeToRefs } from 'pinia'
import { cloneDeep } from 'lodash'
import { ref } from 'vue'
//获取下拉框选项 //获取下拉框选项
const assignWorkStore = useAssignWorkStore() const assignWorkStore = useAssignWorkStore()
const baseStore = useBaseStore() const baseStore = useBaseStore()
//获取查询表单数据
const { searchData } = storeToRefs(assignWorkStore)
const formData = ref(cloneDeep(searchData.value))
const handleReset = () => {
assignWorkStore.resetForm()
uni.$mocpJump.redirectTo('/panel/assign-work/list')
uni.$emit('assignWorkReload')
}
const handleConfirm = () => {
assignWorkStore.setState('searchData', formData.value)
uni.$mocpJump.redirectTo('/panel/assign-work/list')
uni.$emit('assignWorkReload')
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search-form { .search-form {
......
import { ref } from 'vue'
export const formRef = ref()
// 表单数据
export const formData = ref({
state: null,
presenter: '',
seat: '',
workType: null,
startDateTime: null,
endDateTime: null
})
import { toRaw } from 'vue'
import { formData, formRef } from './search.compositions'
export const handleReset = () => {
formData.value = {
state: null,
presenter: '',
seat: '',
workType: null,
startTime: null,
stopTime: null
}
formRef.value?.resetFields()
handleConfirm()
}
export const handleConfirm = () => {
uni.$mocpJump.navigateBack()
uni.$emit('moveDecisionReload', { params: toRaw(formData.value) })
}
...@@ -63,21 +63,6 @@ ...@@ -63,21 +63,6 @@
</view> </view>
</view> </view>
<custom-card-details <custom-card-details
title="公司值班经理意见"
showfooter
:idcard="details.approverUpdateName"
:calendar="details.approverUpdateTime"
edit
@handleAdd="handleAdd('edit-approver')"
>
<custom-card-details-item label="公司值班经理" :value="details.approverName || '-'"></custom-card-details-item>
<custom-card-details-item
label="公司值班经理意见"
:value="useGetDictByValue('md_decisionState', details.decisionState) || '-'"
></custom-card-details-item>
<custom-card-details-item label="公司值班经理意见描述" :value="details.decisionOpinion || '-'"></custom-card-details-item>
</custom-card-details>
<custom-card-details
title="MCO主任意见" title="MCO主任意见"
showfooter showfooter
:idcard="details.mcoDirectorUpdateName" :idcard="details.mcoDirectorUpdateName"
...@@ -92,6 +77,21 @@ ...@@ -92,6 +77,21 @@
></custom-card-details-item> ></custom-card-details-item>
<custom-card-details-item label="MCO主任意见描述" :value="details.mcoDirectorOpinion || '-'"></custom-card-details-item> <custom-card-details-item label="MCO主任意见描述" :value="details.mcoDirectorOpinion || '-'"></custom-card-details-item>
</custom-card-details> </custom-card-details>
<custom-card-details
title="公司值班经理意见"
showfooter
:idcard="details.approverUpdateName"
:calendar="details.approverUpdateTime"
edit
@handleAdd="handleAdd('edit-approver')"
>
<custom-card-details-item label="公司值班经理" :value="details.approverName || '-'"></custom-card-details-item>
<custom-card-details-item
label="公司值班经理意见"
:value="useGetDictByValue('md_decisionState', details.decisionState) || '-'"
></custom-card-details-item>
<custom-card-details-item label="公司值班经理意见描述" :value="details.decisionOpinion || '-'"></custom-card-details-item>
</custom-card-details>
<view class="time-list"> <view class="time-list">
<view class="time-item"> <view class="time-item">
<global-field label="填报人:" :value="details.filledBy"></global-field> <global-field label="填报人:" :value="details.filledBy"></global-field>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
loadingMoreEnabled loadingMoreEnabled
auto auto
ref="paging" ref="paging"
:params="searchParams" :params="searchData"
showNavRight showNavRight
navRightType="icon" navRightType="icon"
navRightIcon="saixuan-01" navRightIcon="saixuan-01"
...@@ -47,10 +47,12 @@ import { timeStampFormat } from 'mocp/utils/tool' ...@@ -47,10 +47,12 @@ import { timeStampFormat } from 'mocp/utils/tool'
import { getDecisionApi } from 'mocp/api/move-decision' import { getDecisionApi } from 'mocp/api/move-decision'
import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict' import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict'
import useMoveDecisionStore from 'mocp/store/move-decision' import useMoveDecisionStore from 'mocp/store/move-decision'
import { storeToRefs } from 'pinia'
import { onUnload } from '@dcloudio/uni-app' import { onUnload } from '@dcloudio/uni-app'
//跳转 //跳转
const moveDecisionStore = useMoveDecisionStore() const moveDecisionStore = useMoveDecisionStore()
const { searchData } = storeToRefs(moveDecisionStore)
const goDetails = (data) => { const goDetails = (data) => {
uni.$mocpJump.navigateTo('/panel/move-decision/details', { id: data.id }).then(() => { uni.$mocpJump.navigateTo('/panel/move-decision/details', { id: data.id }).then(() => {
moveDecisionStore.setState('details', data) moveDecisionStore.setState('details', data)
...@@ -61,12 +63,8 @@ const handleRightClick = () => { ...@@ -61,12 +63,8 @@ const handleRightClick = () => {
uni.$mocpJump.navigateTo('/panel/move-decision/search') uni.$mocpJump.navigateTo('/panel/move-decision/search')
} }
//刷新 //刷新
const searchParams = ref()
const paging = ref() const paging = ref()
uni.$on('moveDecisionReload', ({ params }) => { uni.$on('moveDecisionReload', () => {
if (params) {
searchParams.value = params
}
paging.value?.reload() paging.value?.reload()
}) })
onUnload(() => { onUnload(() => {
......
<template> <template>
<global-page title="筛选"> <global-page title="筛选">
<view class="search-form"> <view class="search-form">
<up-form labelPosition="left" labelWidth="auto" :model="formData" ref="formRef"> <up-form labelPosition="left" labelWidth="auto">
<up-form-item label="状态" prop="state" :borderBottom="true"> <up-form-item label="状态" prop="state" :borderBottom="true">
<global-picker v-model="formData.state" pickAlign="right" clearable dictkey="md_state"></global-picker> <global-picker v-model="formData.state" pickAlign="right" clearable dictkey="md_state"></global-picker>
</up-form-item> </up-form-item>
...@@ -72,15 +72,31 @@ ...@@ -72,15 +72,31 @@
</template> </template>
<script setup> <script setup>
import { formData, formRef } from './constants/search.compositions'
import useBaseStore from 'mocp/store/base' import useBaseStore from 'mocp/store/base'
import { handleConfirm, handleReset } from './constants/search.functionals' import useMoveDecisionStore from 'mocp/store/move-decision'
import { storeToRefs } from 'pinia'
import { cloneDeep } from 'lodash'
import { ref } from 'vue'
//获取下拉框选项 //获取下拉框选项
const baseStore = useBaseStore() const baseStore = useBaseStore()
const { const {
selectList: { deviceNumList } selectList: { deviceNumList }
} = useBaseStore() } = useBaseStore()
const moveDecisionStore = useMoveDecisionStore()
//获取查询表单数据
const { searchData } = storeToRefs(moveDecisionStore)
const formData = ref(cloneDeep(searchData.value))
const handleReset = () => {
moveDecisionStore.resetForm()
uni.$mocpJump.navigateBack()
uni.$emit('moveDecisionReload')
}
const handleConfirm = () => {
moveDecisionStore.setState('searchData', formData.value)
uni.$mocpJump.navigateBack()
uni.$emit('moveDecisionReload')
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search-form { .search-form {
......
...@@ -22,14 +22,10 @@ ...@@ -22,14 +22,10 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.label { .txt {
margin-right: 32rpx; color: $mocp-text-5;
.txt { font-size: 28rpx;
margin-left: 16rpx; margin-left: 16rpx;
}
&:last-child {
margin-right: 0;
}
} }
} }
} }
......
import { ref } from 'vue'
export const formRef = ref()
// 表单数据
export const formData = ref({
state: null,
ac: '',
model: '',
ata: '',
startDateTime: null,
endDateTime: null
})
import { toRaw } from 'vue'
import { formData, formRef } from './search.compositions'
export const handleReset = () => {
formData.value = {
state: null,
presenter: '',
seat: '',
workType: null,
startTime: null,
stopTime: null
}
formRef.value?.resetFields()
handleConfirm()
}
export const handleConfirm = () => {
uni.$mocpJump.navigateBack()
uni.$emit('technologyEvaluationReload', { params: toRaw(formData.value) })
}
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
loadingMoreEnabled loadingMoreEnabled
auto auto
ref="paging" ref="paging"
:params="searchParams" :params="searchData"
showNavRight showNavRight
navRightType="icon" navRightType="icon"
navRightIcon="saixuan-01" navRightIcon="saixuan-01"
...@@ -21,12 +21,11 @@ ...@@ -21,12 +21,11 @@
<custom-state :value="useGetDictByValue('te_state', item.state)"></custom-state> <custom-state :value="useGetDictByValue('te_state', item.state)"></custom-state>
</view> </view>
<view class="right"> <view class="right">
<view class="label"> <text class="txt u-line-1" v-if="item.ac">{{ item.ac }}</text>
<global-field class="txt" label="机号:" :value="item.ac || '-'"></global-field> <text class="txt u-line-1" v-if="item.model">{{ item.model }}</text>
</view> <text class="txt u-line-1" v-if="item.aviation">
<view class="label"> {{ useGetDictByValue('', item.aviation, { data: baseStore.getAirlineSelect }) }}
<global-field class="txt" label="机型:" :value="item.model || '-'"></global-field> </text>
</view>
</view> </view>
</view> </view>
<view class="item-content u-line-3"> <view class="item-content u-line-3">
...@@ -50,11 +49,15 @@ import { ref } from 'vue' ...@@ -50,11 +49,15 @@ import { ref } from 'vue'
import Day from 'mocp/utils/dayjs' import Day from 'mocp/utils/dayjs'
import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict' import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict'
import useTechnologyEvaluationStore from 'mocp/store/technology-evaluation' import useTechnologyEvaluationStore from 'mocp/store/technology-evaluation'
import useBaseStore from 'mocp/store/base'
import { storeToRefs } from 'pinia'
import { onUnload } from '@dcloudio/uni-app' import { onUnload } from '@dcloudio/uni-app'
import { getTechnicalEvaluationApi } from 'mocp/api/technology-evaluation' import { getTechnicalEvaluationApi } from 'mocp/api/technology-evaluation'
const baseStore = useBaseStore()
//跳转 //跳转
const technologyEvaluationStore = useTechnologyEvaluationStore() const technologyEvaluationStore = useTechnologyEvaluationStore()
const { searchData } = storeToRefs(technologyEvaluationStore)
const goDetails = (data) => { const goDetails = (data) => {
uni.$mocpJump.navigateTo('/panel/technology-evaluation/details', { id: data.id }).then(() => { uni.$mocpJump.navigateTo('/panel/technology-evaluation/details', { id: data.id }).then(() => {
technologyEvaluationStore.setState('details', data) technologyEvaluationStore.setState('details', data)
...@@ -65,12 +68,8 @@ const handleRightClick = () => { ...@@ -65,12 +68,8 @@ const handleRightClick = () => {
uni.$mocpJump.navigateTo('/panel/technology-evaluation/search') uni.$mocpJump.navigateTo('/panel/technology-evaluation/search')
} }
//刷新 //刷新
const searchParams = ref()
const paging = ref() const paging = ref()
uni.$on('technologyEvaluationReload', ({ params }) => { uni.$on('technologyEvaluationReload', () => {
if (params) {
searchParams.value = params
}
paging.value?.reload() paging.value?.reload()
}) })
onUnload(() => { onUnload(() => {
......
...@@ -11,6 +11,15 @@ ...@@ -11,6 +11,15 @@
<up-form-item label="机型" prop="model" :borderBottom="true"> <up-form-item label="机型" prop="model" :borderBottom="true">
<global-picker v-model="formData.model" pickAlign="right" :options="baseStore.getTypeSelect" clearable filter></global-picker> <global-picker v-model="formData.model" pickAlign="right" :options="baseStore.getTypeSelect" clearable filter></global-picker>
</up-form-item> </up-form-item>
<up-form-item label="航司" prop="aviation" :borderBottom="true">
<global-picker
v-model="formData.aviation"
pickAlign="right"
:options="baseStore.getAirlineSelect"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item label="ATA章节" prop="ata" :borderBottom="true"> <up-form-item label="ATA章节" prop="ata" :borderBottom="true">
<global-picker v-model="formData.ata" pickAlign="right" :options="baseStore.getATASelect" clearable filter></global-picker> <global-picker v-model="formData.ata" pickAlign="right" :options="baseStore.getATASelect" clearable filter></global-picker>
</up-form-item> </up-form-item>
...@@ -38,15 +47,31 @@ ...@@ -38,15 +47,31 @@
</template> </template>
<script setup> <script setup>
import { formData, formRef } from './constants/search.compositions'
import useBaseStore from 'mocp/store/base' import useBaseStore from 'mocp/store/base'
import { handleConfirm, handleReset } from './constants/search.functionals' import useTechnologyEvaluationStore from 'mocp/store/technology-evaluation'
import { storeToRefs } from 'pinia'
import { cloneDeep } from 'lodash'
import { ref } from 'vue'
//获取下拉框选项 //获取下拉框选项
const baseStore = useBaseStore() const baseStore = useBaseStore()
const { const {
selectList: { deviceNumList } selectList: { deviceNumList }
} = useBaseStore() } = useBaseStore()
const technologyEvaluationStore = useTechnologyEvaluationStore()
//获取查询表单数据
const { searchData } = storeToRefs(technologyEvaluationStore)
const formData = ref(cloneDeep(searchData.value))
const handleReset = () => {
technologyEvaluationStore.resetForm()
uni.$mocpJump.navigateBack()
uni.$emit('technologyEvaluationReload')
}
const handleConfirm = () => {
technologyEvaluationStore.setState('searchData', formData.value)
uni.$mocpJump.navigateBack()
uni.$emit('technologyEvaluationReload')
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search-form { .search-form {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment