|
@@ -27,7 +27,7 @@
|
|
|
@click="state.showOrderType = true; hideKeyboard()"
|
|
|
>
|
|
|
<up-input
|
|
|
- v-model="state.model.order.type"
|
|
|
+ :modelValue="valueToConst(WorkOrderTypes, state.model.order.type).label"
|
|
|
disabled
|
|
|
disabledColor="#ffffff"
|
|
|
placeholder="请选择工单类型"
|
|
@@ -48,7 +48,7 @@
|
|
|
@click="state.showOrderLevel = true; hideKeyboard()"
|
|
|
>
|
|
|
<up-input
|
|
|
- v-model="state.model.order.level"
|
|
|
+ :modelValue="valueToConst(WorkOrderLevel, state.model.order.level).label"
|
|
|
disabled
|
|
|
disabledColor="#ffffff"
|
|
|
placeholder="请选择工单等级"
|
|
@@ -68,7 +68,7 @@
|
|
|
@click="state.showStartClendar = true; hideKeyboard()"
|
|
|
>
|
|
|
<up-input
|
|
|
- v-model="state.model.order.startDate"
|
|
|
+ :modelValue="formatDate(state.model.order.startDate)"
|
|
|
disabled
|
|
|
disabledColor="#ffffff"
|
|
|
placeholder="请选择预计开始日期"
|
|
@@ -88,7 +88,7 @@
|
|
|
@click="state.showEndClendar = true; hideKeyboard()"
|
|
|
>
|
|
|
<up-input
|
|
|
- v-model="state.model.order.endDate"
|
|
|
+ :modelValue="formatDate(state.model.order.endDate)"
|
|
|
disabled
|
|
|
disabledColor="#ffffff"
|
|
|
placeholder="请选择预计结束日期"
|
|
@@ -142,21 +142,32 @@
|
|
|
<up-datetime-picker
|
|
|
:show="state.showStartClendar"
|
|
|
v-model="state.model.order.startDate"
|
|
|
- mode="date"
|
|
|
+ mode="datetime"
|
|
|
+ @close="state.showStartClendar = false"
|
|
|
+ :closeOnClickOverlay="true"
|
|
|
+ @confirm="(e)=>confirm(e,'showStartClendar')"
|
|
|
+ @cancel="state.showStartClendar = false"
|
|
|
></up-datetime-picker>
|
|
|
<up-datetime-picker
|
|
|
:show="state.showEndClendar"
|
|
|
v-model="state.model.order.endDate"
|
|
|
- mode="date"
|
|
|
- ></up-datetime-picker>
|
|
|
+ mode="datetime"
|
|
|
+ @close="state.showEndClendar = false"
|
|
|
+ :closeOnClickOverlay="true"
|
|
|
+ @confirm="(e)=>confirm(e,'showEndClendar')"
|
|
|
+ @cancel="state.showEndClendar = false"
|
|
|
+ >
|
|
|
+ </up-datetime-picker>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import {reactive, ref} from 'vue'
|
|
|
-import {uploadOrderFile} from '@/api/workorder.js'
|
|
|
+import {submitOrderWork, uploadOrderFile} from '@/api/workorder.js'
|
|
|
import dayjs from 'dayjs';
|
|
|
-import {DateFormat} from "@/util/index.js";
|
|
|
+import {DateFormat, reloadPage} from "@/util/index.js";
|
|
|
+import {WorkOrderLevel, WorkOrderTypes} from "@/common/consts/WorkOrderConst.js";
|
|
|
+import {valueToConst} from "@/common/consts/CommonConst";
|
|
|
|
|
|
const state = reactive({
|
|
|
showOrderType: false,
|
|
@@ -166,20 +177,12 @@ const state = reactive({
|
|
|
model: {
|
|
|
order: {
|
|
|
files: [],
|
|
|
- startDate: [dayjs().format(DateFormat.YYYYMMDD)],
|
|
|
- endDate: [dayjs().format(DateFormat.YYYYMMDD)],
|
|
|
+ startDate: dayjs().valueOf(),
|
|
|
+ endDate: dayjs().valueOf(),
|
|
|
}
|
|
|
},
|
|
|
- orderTypeList: [
|
|
|
- {name: '男'},
|
|
|
- {name: '女'},
|
|
|
- {name: '保密'},
|
|
|
- ],
|
|
|
- orderLevelList: [
|
|
|
- {name: 'level'},
|
|
|
- {name: 'level2'},
|
|
|
- {name: 'level3'},
|
|
|
- ],
|
|
|
+ orderTypeList: [],
|
|
|
+ orderLevelList: [],
|
|
|
rules: {
|
|
|
'order.name': {
|
|
|
type: 'string',
|
|
@@ -188,45 +191,48 @@ const state = reactive({
|
|
|
trigger: ['blur', 'change'],
|
|
|
},
|
|
|
'order.type': {
|
|
|
- type: 'string',
|
|
|
- max: 1,
|
|
|
+ type: 'number',
|
|
|
required: true,
|
|
|
message: '请选择工单类型',
|
|
|
trigger: ['blur', 'change'],
|
|
|
},
|
|
|
'order.level': {
|
|
|
- type: 'string',
|
|
|
- max: 1,
|
|
|
+ type: 'number',
|
|
|
required: true,
|
|
|
message: '请选择工单等级',
|
|
|
trigger: ['blur', 'change'],
|
|
|
},
|
|
|
'order.startDate': {
|
|
|
- type: 'string',
|
|
|
+ type: 'number',
|
|
|
required: true,
|
|
|
message: '请选择预计开始时间',
|
|
|
trigger: ['blur', 'change'],
|
|
|
},
|
|
|
'order.endDate': {
|
|
|
- type: 'string',
|
|
|
- max: 1,
|
|
|
+ type: 'number',
|
|
|
required: true,
|
|
|
message: '请选择预计结束时间',
|
|
|
trigger: ['blur', 'change'],
|
|
|
}
|
|
|
},
|
|
|
});
|
|
|
+Object.keys(WorkOrderTypes).forEach(key => {
|
|
|
+ state.orderTypeList.push({name: WorkOrderTypes[key].label, id: WorkOrderTypes[key].value})
|
|
|
+});
|
|
|
+Object.keys(WorkOrderLevel).forEach(key => {
|
|
|
+ state.orderLevelList.push({name: WorkOrderLevel[key].label, id: WorkOrderLevel[key].value})
|
|
|
+});
|
|
|
// 使用 ref 创建响应式引用
|
|
|
const formRef = ref(null);
|
|
|
const hideKeyboard = () => {
|
|
|
uni.hideKeyboard()
|
|
|
}
|
|
|
const orderTypeSelect = (item) => {
|
|
|
- state.model.order.type = item.name;
|
|
|
+ state.model.order.type = item.id;
|
|
|
state.showOrderType = false;
|
|
|
};
|
|
|
const orderLevelSelect = (item) => {
|
|
|
- state.model.order.level = item.name;
|
|
|
+ state.model.order.level = item.id;
|
|
|
state.showOrderLevel = false;
|
|
|
};
|
|
|
|
|
@@ -234,6 +240,12 @@ const orderLevelSelect = (item) => {
|
|
|
const deletePic = (event) => {
|
|
|
state.model.order.files.splice(event.index, 1)
|
|
|
}
|
|
|
+const formatDate = (date) => {
|
|
|
+ return dayjs(date).format(DateFormat.YYYYMMDDHHMM)
|
|
|
+}
|
|
|
+const confirm = (e, type) => {
|
|
|
+ state[type] = false;
|
|
|
+};
|
|
|
const afterRead = async (event) => {
|
|
|
// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
|
|
|
let lists = [].concat(event.file)
|
|
@@ -250,8 +262,9 @@ const afterRead = async (event) => {
|
|
|
let item = state.model.order.files[fileListLen]
|
|
|
state.model.order.files.splice(fileListLen, 1, Object.assign(item, {
|
|
|
status: 'success',
|
|
|
- message: '',
|
|
|
- url: result
|
|
|
+ name: result.fileName,
|
|
|
+ uid: result.md5,
|
|
|
+ url: result.url
|
|
|
}))
|
|
|
fileListLen++
|
|
|
}
|
|
@@ -259,14 +272,21 @@ const afterRead = async (event) => {
|
|
|
const submit = () => {
|
|
|
formRef.value.validate().then(async valid => {
|
|
|
if (valid) {
|
|
|
- const params = {
|
|
|
- "grant_type": "password_login",
|
|
|
- "username": state.model.userInfo.name,
|
|
|
- "password": Base64.encode(model.userInfo.pwd),
|
|
|
- "client_id": "speed",
|
|
|
- "client_secret": "speed1211",
|
|
|
- }
|
|
|
-
|
|
|
+ const order = state.model.order
|
|
|
+ submitOrderWork({
|
|
|
+ "name": order.name,
|
|
|
+ "type": order.type,
|
|
|
+ "level": order.level,
|
|
|
+ "estimatedStartTime": dayjs(order.startDate).format(DateFormat.YYYYMMDDHHMMSS),
|
|
|
+ "estimatedEndTime": dayjs(order.endDate).format(DateFormat.YYYYMMDDHHMMSS),
|
|
|
+ "description": order.desc,
|
|
|
+ "source": 2,
|
|
|
+ "problemImg": JSON.stringify(order.files),
|
|
|
+ "problemFile": null
|
|
|
+ }).then(res => {
|
|
|
+ uni.$u.toast('提交成功')
|
|
|
+ reloadPage()
|
|
|
+ })
|
|
|
} else {
|
|
|
uni.$u.toast('校验失败')
|
|
|
}
|