Browse Source

接单增加状态

ops-management-platform-frontend-dev
wbc 2 weeks ago
parent
commit
68d54d9d73
  1. 20
      src/views/IO/workOrder/delayAudit/detailDrawer.vue
  2. 8
      src/views/IO/workOrder/orderAudit/data.ts
  3. 46
      src/views/IO/workOrder/orderAudit/detailDrawer.vue
  4. 8
      src/views/IO/workOrder/orderHandle/data.ts
  5. 32
      src/views/IO/workOrder/orderHandle/detailDrawer.vue
  6. 2
      src/views/IO/workOrder/orderHandle/index.vue
  7. 8
      src/views/IO/workOrder/orderSearch/data.ts
  8. 30
      src/views/IO/workOrder/orderSearch/detailDrawer.vue
  9. 8
      src/views/IO/workOrder/orderSend/data.ts
  10. 46
      src/views/IO/workOrder/orderSend/detailDrawer.vue
  11. 3
      src/views/auth/login/useLogin.ts

20
src/views/IO/workOrder/delayAudit/detailDrawer.vue

@ -80,11 +80,7 @@
<a-col :span="24"> <a-col :span="24">
<div <div
><span class="titleLabel">故障图片</span> ><span class="titleLabel">故障图片</span>
<a-upload <a-upload v-model:file-list="fileLists" disabled> </a-upload>
v-model:file-list="fileLists"
disabled
>
</a-upload>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -174,6 +170,14 @@
label: '作废', label: '作废',
value: 8, value: 8,
}, },
{
label: '待接单(派遣)',
value: 9,
},
{
label: '待接单(转派)',
value: 10,
},
{ {
label: '运维单位处理时回退至派遣', label: '运维单位处理时回退至派遣',
value: 3, value: 3,
@ -191,7 +195,7 @@
value: 6, value: 6,
}, },
]; ];
const fileLists = ref([]) const fileLists = ref([]);
const progress = ref([]); const progress = ref([]);
const statusText = (val) => { const statusText = (val) => {
return statusOptions.find((i) => { return statusOptions.find((i) => {
@ -202,7 +206,7 @@
const visible = ref(false); const visible = ref(false);
const showDrawer = async (id) => { const showDrawer = async (id) => {
visible.value = true; visible.value = true;
fileLists.value= [] fileLists.value = [];
const data = await getInfo(id); const data = await getInfo(id);
for (let i in detail) { for (let i in detail) {
detail[i] = data[i]; detail[i] = data[i];
@ -267,7 +271,7 @@
detail, detail,
statusText, statusText,
progress, progress,
fileLists fileLists,
}; };
}, },
}); });

8
src/views/IO/workOrder/orderAudit/data.ts

@ -20,6 +20,14 @@ const statusOptions = [
{ {
label: '作废', label: '作废',
value: 8, value: 8,
},
{
label: '待接单(派遣)',
value: 9,
},
{
label: '待接单(转派)',
value: 10,
}, },
{ {
label:'运维单位处理时回退至派遣', label:'运维单位处理时回退至派遣',

46
src/views/IO/workOrder/orderAudit/detailDrawer.vue

@ -80,11 +80,7 @@
<a-col :span="24"> <a-col :span="24">
<div <div
><span class="titleLabel">故障图片</span> ><span class="titleLabel">故障图片</span>
<a-upload <a-upload v-model:file-list="fileLists" disabled> </a-upload>
v-model:file-list="fileLists"
disabled
>
</a-upload>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -122,11 +118,7 @@
<a-col :span="24"> <a-col :span="24">
<div <div
><span class="titleLabel">处理图片</span> ><span class="titleLabel">处理图片</span>
<a-upload <a-upload v-model:file-list="fileLists1" disabled> </a-upload>
v-model:file-list="fileLists1"
disabled
>
</a-upload>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -135,23 +127,25 @@
<div style="margin-left: 20px"> <div style="margin-left: 20px">
<a-timeline> <a-timeline>
<a-timeline-item v-for="(item, index) in progress" :key="index"> <a-timeline-item v-for="(item, index) in progress" :key="index">
<template #dot><span class="stage">{{ item.stage }}</span></template> <template #dot
><span class="stage">{{ item.stage }}</span></template
>
<div class="timeText" <div class="timeText"
><span class="person">{{ item.operator }}</span ><span class="person">{{ item.operator }}</span
>{{ item.description }}</div >{{ item.description }}</div
> >
<div class="timeText">{{ item.feedback }}</div> <div class="timeText">{{ item.feedback }}</div>
<div class="operationTime">{{ item.operationTime }}</div> <div class="operationTime">{{ item.operationTime }}</div>
<div class="duration" v-if="item.duration"> <Icon icon="ant-design:dashboard-outlined" />用时{{item.duration}}</div> <div class="duration" v-if="item.duration">
<Icon icon="ant-design:dashboard-outlined" />用时{{ item.duration }}</div
>
<a-divider></a-divider> <a-divider></a-divider>
</a-timeline-item> </a-timeline-item>
</a-timeline> </a-timeline>
</div> </div>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="4" tab="历史信息"> <a-tab-pane key="4" tab="历史信息">
<a-table :dataSource="progress" :columns="historyColumns" bordered> <a-table :dataSource="progress" :columns="historyColumns" bordered> </a-table>
</a-table>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="5" tab="延期信息"> <a-tab-pane key="5" tab="延期信息">
<a-table :dataSource="delayInfo" :columns="delayColumns" bordered> <a-table :dataSource="delayInfo" :columns="delayColumns" bordered>
@ -203,8 +197,8 @@
cost: '', cost: '',
attachments: '', attachments: '',
}); });
const fileLists = ref([]) const fileLists = ref([]);
const fileLists1 = ref([]) const fileLists1 = ref([]);
const progress = ref([]); const progress = ref([]);
const statusOptions = [ const statusOptions = [
{ {
@ -227,6 +221,14 @@
label: '作废', label: '作废',
value: 8, value: 8,
}, },
{
label: '待接单(派遣)',
value: 9,
},
{
label: '待接单(转派)',
value: 10,
},
{ {
label: '运维单位处理时回退至派遣', label: '运维单位处理时回退至派遣',
value: 3, value: 3,
@ -299,8 +301,8 @@
const visible = ref(false); const visible = ref(false);
const showDrawer = async (id) => { const showDrawer = async (id) => {
visible.value = true; visible.value = true;
fileLists.value= [] fileLists.value = [];
fileLists1.value= [] fileLists1.value = [];
const data = await getInfo(id); const data = await getInfo(id);
for (let i in detail) { for (let i in detail) {
detail[i] = data[i]; detail[i] = data[i];
@ -343,7 +345,7 @@
const onClose = () => { const onClose = () => {
visible.value = false; visible.value = false;
for (let i in dealDetail) { for (let i in dealDetail) {
dealDetail[i] = '' dealDetail[i] = '';
} }
map.value?.destroy(); map.value?.destroy();
}; };
@ -389,7 +391,7 @@
statusText, statusText,
progress, progress,
fileLists, fileLists,
fileLists1 fileLists1,
}; };
}, },
}); });
@ -420,7 +422,7 @@
.operationTime { .operationTime {
color: gray; color: gray;
font-weight: 550; font-weight: 550;
margin-left:80% margin-left: 80%;
} }
.duration { .duration {
color: #00bbff; color: #00bbff;

8
src/views/IO/workOrder/orderHandle/data.ts

@ -21,6 +21,14 @@ const statusOptions = [
{ {
label: '作废', label: '作废',
value: 8, value: 8,
},
{
label: '待接单(派遣)',
value: 9,
},
{
label: '待接单(转派)',
value: 10,
}, },
{ {
label: '运维单位处理时回退至派遣', label: '运维单位处理时回退至派遣',

32
src/views/IO/workOrder/orderHandle/detailDrawer.vue

@ -80,11 +80,7 @@
<a-col :span="24"> <a-col :span="24">
<div <div
><span class="titleLabel">故障图片</span> ><span class="titleLabel">故障图片</span>
<a-upload <a-upload v-model:file-list="fileLists" disabled> </a-upload>
v-model:file-list="fileLists"
disabled
>
</a-upload>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -122,11 +118,7 @@
<a-col :span="24"> <a-col :span="24">
<div <div
><span class="titleLabel">处理图片</span> ><span class="titleLabel">处理图片</span>
<a-upload <a-upload v-model:file-list="fileLists1" disabled> </a-upload>
v-model:file-list="fileLists1"
disabled
>
</a-upload>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -205,8 +197,8 @@
cost: '', cost: '',
attachments: '', attachments: '',
}); });
const fileLists = ref([]) const fileLists = ref([]);
const fileLists1 = ref([]) const fileLists1 = ref([]);
const progress = ref([]); const progress = ref([]);
const statusOptions = [ const statusOptions = [
{ {
@ -229,6 +221,14 @@
label: '作废', label: '作废',
value: 8, value: 8,
}, },
{
label: '待接单(派遣)',
value: 9,
},
{
label: '待接单(转派)',
value: 10,
},
{ {
label: '运维单位处理时回退至派遣', label: '运维单位处理时回退至派遣',
value: 3, value: 3,
@ -301,8 +301,8 @@
const visible = ref(false); const visible = ref(false);
const showDrawer = async (id) => { const showDrawer = async (id) => {
visible.value = true; visible.value = true;
fileLists.value= [] fileLists.value = [];
fileLists1.value= [] fileLists1.value = [];
const data = await getInfo(id); const data = await getInfo(id);
for (let i in detail) { for (let i in detail) {
detail[i] = data[i]; detail[i] = data[i];
@ -345,7 +345,7 @@
const onClose = () => { const onClose = () => {
visible.value = false; visible.value = false;
for (let i in dealDetail) { for (let i in dealDetail) {
dealDetail[i] = '' dealDetail[i] = '';
} }
map.value?.destroy(); map.value?.destroy();
}; };
@ -392,7 +392,7 @@
statusText, statusText,
progress, progress,
fileLists, fileLists,
fileLists1 fileLists1,
}; };
}, },
}); });

2
src/views/IO/workOrder/orderHandle/index.vue

@ -10,7 +10,7 @@
cancel-text="否" cancel-text="否"
@confirm="receive(record.id)" @confirm="receive(record.id)"
> >
<a-button type="link" v-if="record.status == 1">接单</a-button> <a-button type="link" v-if="record.status == 1|| record.status == 9|| record.status == 10">接单</a-button>
</a-popconfirm> </a-popconfirm>
<a-button <a-button
type="link" type="link"

8
src/views/IO/workOrder/orderSearch/data.ts

@ -33,6 +33,14 @@ const statusOptions = [
label: '作废', label: '作废',
value: 8, value: 8,
}, },
{
label: '待接单(派遣)',
value: 9,
},
{
label: '待接单(转派)',
value: 10,
},
{ {
label: '运维单位处理时回退至派遣', label: '运维单位处理时回退至派遣',
value: 3, value: 3,

30
src/views/IO/workOrder/orderSearch/detailDrawer.vue

@ -80,11 +80,7 @@
<a-col :span="24"> <a-col :span="24">
<div <div
><span class="titleLabel">故障图片</span> ><span class="titleLabel">故障图片</span>
<a-upload <a-upload v-model:file-list="fileLists" disabled> </a-upload>
v-model:file-list="fileLists"
disabled
>
</a-upload>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -122,11 +118,7 @@
<a-col :span="24"> <a-col :span="24">
<div <div
><span class="titleLabel">处理图片</span> ><span class="titleLabel">处理图片</span>
<a-upload <a-upload v-model:file-list="fileLists1" disabled> </a-upload>
v-model:file-list="fileLists1"
disabled
>
</a-upload>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -205,8 +197,8 @@
cost: '', cost: '',
attachments: '', attachments: '',
}); });
const fileLists = ref([]) const fileLists = ref([]);
const fileLists1 = ref([]) const fileLists1 = ref([]);
const progress = ref([]); const progress = ref([]);
const statusOptions = [ const statusOptions = [
{ {
@ -229,6 +221,14 @@
label: '作废', label: '作废',
value: 8, value: 8,
}, },
{
label: '待接单(派遣)',
value: 9,
},
{
label: '待接单(转派)',
value: 10,
},
{ {
label: '运维单位处理时回退至派遣', label: '运维单位处理时回退至派遣',
value: 3, value: 3,
@ -301,8 +301,8 @@
const visible = ref(false); const visible = ref(false);
const showDrawer = async (id) => { const showDrawer = async (id) => {
visible.value = true; visible.value = true;
fileLists.value= [] fileLists.value = [];
fileLists1.value= [] fileLists1.value = [];
const data = await getInfo(id); const data = await getInfo(id);
for (let i in detail) { for (let i in detail) {
detail[i] = data[i]; detail[i] = data[i];
@ -392,7 +392,7 @@
statusText, statusText,
progress, progress,
fileLists, fileLists,
fileLists1 fileLists1,
}; };
}, },
}); });

8
src/views/IO/workOrder/orderSend/data.ts

@ -20,6 +20,14 @@ const statusOptions = [
{ {
label: '作废', label: '作废',
value: 8, value: 8,
},
{
label: '待接单(派遣)',
value: 9,
},
{
label: '待接单(转派)',
value: 10,
}, },
{ {
label: '运维单位处理时回退至派遣', label: '运维单位处理时回退至派遣',

46
src/views/IO/workOrder/orderSend/detailDrawer.vue

@ -80,11 +80,7 @@
<a-col :span="24"> <a-col :span="24">
<div <div
><span class="titleLabel">故障图片</span> ><span class="titleLabel">故障图片</span>
<a-upload <a-upload v-model:file-list="fileLists" disabled> </a-upload>
v-model:file-list="fileLists"
disabled
>
</a-upload>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -122,11 +118,7 @@
<a-col :span="24"> <a-col :span="24">
<div <div
><span class="titleLabel">处理图片</span> ><span class="titleLabel">处理图片</span>
<a-upload <a-upload v-model:file-list="fileLists1" disabled> </a-upload>
v-model:file-list="fileLists1"
disabled
>
</a-upload>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
@ -135,23 +127,25 @@
<div style="margin-left: 20px"> <div style="margin-left: 20px">
<a-timeline> <a-timeline>
<a-timeline-item v-for="(item, index) in progress" :key="index"> <a-timeline-item v-for="(item, index) in progress" :key="index">
<template #dot><span class="stage">{{ item.stage }}</span></template> <template #dot
><span class="stage">{{ item.stage }}</span></template
>
<div class="timeText" <div class="timeText"
><span class="person">{{ item.operator }}</span ><span class="person">{{ item.operator }}</span
>{{ item.description }}</div >{{ item.description }}</div
> >
<div class="timeText">{{ item.feedback }}</div> <div class="timeText">{{ item.feedback }}</div>
<div class="operationTime">{{ item.operationTime }}</div> <div class="operationTime">{{ item.operationTime }}</div>
<div class="duration" v-if="item.duration"> <Icon icon="ant-design:dashboard-outlined" />用时{{item.duration}}</div> <div class="duration" v-if="item.duration">
<Icon icon="ant-design:dashboard-outlined" />用时{{ item.duration }}</div
>
<a-divider></a-divider> <a-divider></a-divider>
</a-timeline-item> </a-timeline-item>
</a-timeline> </a-timeline>
</div> </div>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="4" tab="历史信息"> <a-tab-pane key="4" tab="历史信息">
<a-table :dataSource="progress" :columns="historyColumns" bordered> <a-table :dataSource="progress" :columns="historyColumns" bordered> </a-table>
</a-table>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="5" tab="延期信息"> <a-tab-pane key="5" tab="延期信息">
<a-table :dataSource="delayInfo" :columns="delayColumns" bordered> <a-table :dataSource="delayInfo" :columns="delayColumns" bordered>
@ -203,8 +197,8 @@
cost: '', cost: '',
attachments: '', attachments: '',
}); });
const fileLists = ref([]) const fileLists = ref([]);
const fileLists1 = ref([]) const fileLists1 = ref([]);
const progress = ref([]); const progress = ref([]);
const statusOptions = [ const statusOptions = [
{ {
@ -227,6 +221,14 @@
label: '作废', label: '作废',
value: 8, value: 8,
}, },
{
label: '待接单(派遣)',
value: 9,
},
{
label: '待接单(转派)',
value: 10,
},
{ {
label: '运维单位处理时回退至派遣', label: '运维单位处理时回退至派遣',
value: 3, value: 3,
@ -299,8 +301,8 @@
const visible = ref(false); const visible = ref(false);
const showDrawer = async (id) => { const showDrawer = async (id) => {
visible.value = true; visible.value = true;
fileLists.value= [] fileLists.value = [];
fileLists1.value= [] fileLists1.value = [];
const data = await getInfo(id); const data = await getInfo(id);
for (let i in detail) { for (let i in detail) {
detail[i] = data[i]; detail[i] = data[i];
@ -343,7 +345,7 @@
const onClose = () => { const onClose = () => {
visible.value = false; visible.value = false;
for (let i in dealDetail) { for (let i in dealDetail) {
dealDetail[i] = '' dealDetail[i] = '';
} }
map.value?.destroy(); map.value?.destroy();
}; };
@ -390,7 +392,7 @@
statusText, statusText,
progress, progress,
fileLists, fileLists,
fileLists1 fileLists1,
}; };
}, },
}); });
@ -421,7 +423,7 @@
.operationTime { .operationTime {
color: gray; color: gray;
font-weight: 550; font-weight: 550;
margin-left:80% margin-left: 80%;
} }
.duration { .duration {
color: #00bbff; color: #00bbff;

3
src/views/auth/login/useLogin.ts

@ -55,7 +55,7 @@ export function useFormRules(formData?: Recordable) {
const { t } = useI18n(); const { t } = useI18n();
const getAccountFormRule = computed(() => createRule(t('sys.login.accountPlaceholder'))); const getAccountFormRule = computed(() => createRule(t('sys.login.accountPlaceholder')));
const getPasswordFormRule = computed(() => createRule(t('sys.login.passwordPlaceholder'))); const getPasswordFormRule = computed(() => createRule('密码必须是大于等于6位,且包含数字大小写字母和特殊字符'));
const getCaptchaCodeFormRule = computed(() => createRule(t('sys.login.smsPlaceholder'))); const getCaptchaCodeFormRule = computed(() => createRule(t('sys.login.smsPlaceholder')));
const getSmsFormRule = computed(() => createRule(t('sys.login.smsPlaceholder'))); const getSmsFormRule = computed(() => createRule(t('sys.login.smsPlaceholder')));
/** 包括验证必填和合法性两项 */ /** 包括验证必填和合法性两项 */
@ -80,6 +80,7 @@ export function useFormRules(formData?: Recordable) {
const getFormRules = computed((): { [k: string]: ValidationRule | ValidationRule[] } => { const getFormRules = computed((): { [k: string]: ValidationRule | ValidationRule[] } => {
const accountFormRule = unref(getAccountFormRule); const accountFormRule = unref(getAccountFormRule);
const passwordFormRule = unref(getPasswordFormRule); const passwordFormRule = unref(getPasswordFormRule);
// passwordFormRule[0].pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()\-_=+[{\]}\\|;:'",.<>/?]).{7,}$/
const smsFormRule = unref(getSmsFormRule); const smsFormRule = unref(getSmsFormRule);
const mobileFormRule = unref(getMobileFormRule); const mobileFormRule = unref(getMobileFormRule);
const captchaCodeFormRule = unref(getCaptchaCodeFormRule); const captchaCodeFormRule = unref(getCaptchaCodeFormRule);

Loading…
Cancel
Save