You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

162 lines
4.3 KiB

<template>
<t-form
:data="formData"
:rules="pubRules"
ref="form"
@reset="onReset"
@submit="onSubmit"
>
<t-form-item
label="任务名称"
help="任务名称用来直观的说明本次操作"
name="taskName"
>
<t-input
v-model="formData.taskName"
placeholder="请输入任务名称"
></t-input>
</t-form-item>
<t-form-item label="核查顺序" name="checkOrder">
<t-radio-group v-model="formData.checkOrder">
<t-radio value="0">横向</t-radio>
<t-radio value="1">纵向</t-radio>
</t-radio-group>
</t-form-item>
<t-form-item label="核电站" name="nuclearStationId">
<t-select
v-model="formData.nuclearStationId"
class="demo-select-base"
clearable
filterable
@change="handleStationChange"
placeholder="请选择所在核电站"
>
<t-option
v-for="item in stationList"
:value="item.id"
:label="item.name"
:key="item.id"
>
{{ item.name }}
</t-option>
</t-select>
</t-form-item>
<t-form-item label="堆芯" name="nuclearCoreId">
<t-select
v-model="formData.nuclearCoreId"
class="demo-select-base"
clearable
filterable
placeholder="请选择所在堆芯"
>
<t-option
v-for="item in coreList"
:value="item.id"
:label="item.name"
:key="item.id"
>
{{ item.name }}
</t-option>
</t-select>
</t-form-item>
<t-form-item label="操作员" name="operatorId">
<t-select
v-model="formData.operatorId"
class="demo-select-base"
clearable
filterable
placeholder="请选择分配的操作员"
>
<t-option
v-for="item in userList"
:value="item.username"
:label="item.nickname"
:key="item.id"
>
{{ item.nickname }}
</t-option>
</t-select>
</t-form-item>
<t-form-item>
<t-space size="10px">
<t-button theme="primary" type="submit">提交</t-button>
<t-button theme="default" variant="base" type="reset">重置</t-button>
</t-space>
</t-form-item>
</t-form>
</template>
<script>
import { allOperatorApi } from '@/api/publish'
import { createTaskApi } from '@/api/task'
import { useAccountStore } from '@/store'
import { stationListApi, coreListByStationIdApi } from '@/api/info'
const accountStore = useAccountStore()
const INITIAL_DATA = {
taskName: '',
checkOrder: '',
nuclearStationId: '',
nuclearCoreId: '',
operatorId: '',
}
export default {
data() {
return {
formData: { ...INITIAL_DATA },
stationList: [],
userList: [],
coreList: [],
pubRules: {
taskName: [{ required: true, message: '请填写任务名称' }],
operatorId: [{ required: true, message: '请选择要分配的操作员' }],
nuclearCoreId: [{ required: true, message: '请选择堆芯' }],
nuclearStationId: [{ required: true, message: '请选择核电站' }],
checkOrder: [{ required: true, message: '核查路径顺序必填' }],
},
}
},
methods: {
async handleStationChange(value, context) {
const res = await coreListByStationIdApi(value)
if (res?.code == 200) {
this.coreList = res?.data.list
}
},
async getStationList() {
const res = await stationListApi()
if (res?.code == 200) {
this.stationList = res?.data?.list
}
},
async getAllOperator() {
const res = await allOperatorApi()
if (res?.code == 200) {
this.userList = res?.data
}
},
onReset() {
this.$message.success('重置成功')
},
async onSubmit({ validateResult, firstError }) {
if (validateResult === true) {
const res = await createTaskApi(this.formData)
if (res?.code == 200) {
if (res?.data?.result) {
this.$message.success('创建任务成功')
accountStore.changePage(1)
}
}
} else {
this.$message.warning(firstError)
}
},
},
mounted() {
this.getAllOperator()
this.getStationList()
},
}
</script>
<style scoped></style>