|
@@ -7,24 +7,20 @@
|
|
|
<a-form-item
|
|
|
label="任务名称"
|
|
|
:label-col="{ span: 6 }"
|
|
|
- name="DotaskName"
|
|
|
+ name="dotaskName"
|
|
|
:rules="[{ required: true, message: '请输入任务名称!' }]"
|
|
|
>
|
|
|
- <a-input v-model:value="dataModel.DotaskName" placeholder=""/>
|
|
|
+ <a-input v-model:value="dataModel.dotaskName" placeholder=""/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :span="8">
|
|
|
- <a-form-item
|
|
|
- label="任务类型"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="WorkTypeID"
|
|
|
- :rules="[{ required: true, message: '请输入任务类型!' }]"
|
|
|
- >
|
|
|
+ <a-form-item label="任务类型" :label-col="{span:6}" name="workTypeId">
|
|
|
<a-select
|
|
|
ref="select"
|
|
|
- v-model:value="dataModel.WorkTypeID"
|
|
|
- :options="studentTypelist"
|
|
|
+ v-model:value="dataModel.workTypeId"
|
|
|
+ :options="taskTypeList"
|
|
|
:field-names="{ label: 'name', value: 'value' }"
|
|
|
+ :allow-clear="true"
|
|
|
>
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
@@ -33,11 +29,11 @@
|
|
|
<a-form-item
|
|
|
label="任务完成时间"
|
|
|
:label-col="{ span: 6 }"
|
|
|
- name="FinishTime"
|
|
|
+ name="finishTime"
|
|
|
:rules="[{ required: true, message: '请输入任务完成时间!' }]"
|
|
|
>
|
|
|
<a-date-picker
|
|
|
- v-model:value="dataModel.FinishTime"
|
|
|
+ v-model:value="dataModel.finishTime"
|
|
|
picker="date"
|
|
|
value-format="YYYY-MM-DD"
|
|
|
/>
|
|
@@ -46,29 +42,28 @@
|
|
|
</a-row>
|
|
|
<a-row :gutter="24">
|
|
|
<a-col :span="8">
|
|
|
- <a-form-item
|
|
|
- label="所属县区"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="RegionCode"
|
|
|
- :rules="[{ required: true, message: '请选择所属县区!' }]"
|
|
|
- >
|
|
|
+ <a-form-item label="所属县区" :label-col="{span:6}" name="regionCode">
|
|
|
<a-select
|
|
|
ref="select"
|
|
|
- v-model:value="dataModel.RegionCode"
|
|
|
- :options="studentTypelist"
|
|
|
- :field-names="{ label: 'name', value: 'value' }"
|
|
|
+ v-model:value="dataModel.regionCode"
|
|
|
+ :options="regionList"
|
|
|
+ :field-names="{ label: 'name', value: 'code' }"
|
|
|
+ :allow-clear="true"
|
|
|
+ @change="changeCity"
|
|
|
>
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :span="8">
|
|
|
- <a-form-item
|
|
|
- label="所属街道"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="StreetCode"
|
|
|
- :rules="[{ required: true, message: '请选择所属街道!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.StreetCode" placeholder=""/>
|
|
|
+ <a-form-item label="所属街道" :label-col="{span:6}" name="streetCode">
|
|
|
+ <a-select
|
|
|
+ ref="select"
|
|
|
+ v-model:value="dataModel.streetCode"
|
|
|
+ :options="streetList"
|
|
|
+ :field-names="{ label: 'name', value: 'code' }"
|
|
|
+ :allow-clear="true"
|
|
|
+ >
|
|
|
+ </a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
@@ -79,14 +74,42 @@
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
+ <a-row>
|
|
|
+ <a-col :span="24" style="text-align: right; margin-top: 20px; margin-right: 20px">
|
|
|
+ <Space>
|
|
|
+ <a-button @click="addUser">
|
|
|
+ <template #icon>
|
|
|
+ <plus-circle-outlined/>
|
|
|
+ </template>
|
|
|
+ 新增
|
|
|
+ </a-button>
|
|
|
+ </Space>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
<a-divider orientation="left">任务执行人员</a-divider>
|
|
|
- <div class="search-result-list">
|
|
|
- <a-table :columns="columns" :data-source="dataList" :scroll="{ x:'100%', y: 500 }"
|
|
|
- :loading="formState.loading"
|
|
|
- :row-key="record=>record.SiteUserID"
|
|
|
- bordered>
|
|
|
- </a-table>
|
|
|
- </div>
|
|
|
+ <a-row>
|
|
|
+ <a-col style="margin-bottom: 20px;">
|
|
|
+ <a-table :columns="columns" :data-source="userData" :pagination="false"
|
|
|
+ bordered>
|
|
|
+ <template #bodyCell="{ column ,index}">
|
|
|
+ <template v-if="column.key === 'siteUserID'">
|
|
|
+ <div>
|
|
|
+ <a-input v-if="isEdit"
|
|
|
+ v-model:value="userData[index][column.key]" style="width: 200px"
|
|
|
+ />
|
|
|
+ <template v-else>
|
|
|
+ {{ userData[index][column.key] }}
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-if="column.key === 'operation'">
|
|
|
+ <a-button type="link" size="small" @click="deleteUser(index)">删除</a-button>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </a-table>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+
|
|
|
<a-divider orientation="left">其他信息</a-divider>
|
|
|
<b-upload-file
|
|
|
:file-ref-id="dataModel.DotaskID"
|
|
@@ -104,86 +127,140 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
|
-import { defineComponent, reactive, ref, toRefs } from 'vue';
|
|
|
-import { useRouter } from 'vue-router';
|
|
|
-import type { SelectProps,TableColumnsType } from 'ant-design-vue';
|
|
|
-import { useTabsViewStore } from '@/store/modules/tabsView';
|
|
|
+import {defineComponent, reactive, ref, toRefs} from 'vue';
|
|
|
+import {useRouter} from 'vue-router';
|
|
|
+import type {SelectProps, TableColumnsType} from 'ant-design-vue';
|
|
|
+import {useTabsViewStore} from '@/store/modules/tabsView';
|
|
|
import BUploadFile from '@/components/file/uploadFile.vue';
|
|
|
+import {get} from "@/api/common";
|
|
|
+import {getUserList, getWorkUserList} from '@/api/taskAndLog/dotask'
|
|
|
|
|
|
interface FormState {
|
|
|
dataModel: any;
|
|
|
}
|
|
|
|
|
|
export default defineComponent(
|
|
|
-{
|
|
|
- components: { BUploadFile },
|
|
|
- setup()
|
|
|
{
|
|
|
- //任务执行人员列表
|
|
|
- const dataList = ref([]);
|
|
|
- const formState = reactive<FormState>({ dataModel: {} });
|
|
|
- const formTableState = reactive({ loading: false});
|
|
|
- const searchParams = reactive({
|
|
|
- pageIndex: 1,
|
|
|
- pageSize: 99
|
|
|
- });
|
|
|
- const router = useRouter();
|
|
|
- const postStatuslist = ref<SelectProps['options']>();
|
|
|
- // const fullpath = router.currentRoute.value.fullPath;
|
|
|
- const tabsViewStore = useTabsViewStore();
|
|
|
-
|
|
|
- const fileList = ref();
|
|
|
- const setFileList = (files) => {
|
|
|
- fileList.value = files;
|
|
|
- };
|
|
|
-
|
|
|
- const onAdd=()=>{
|
|
|
- tabsViewStore.addTabByPath('',null);
|
|
|
- };
|
|
|
- const onDel=()=>{
|
|
|
-
|
|
|
- };
|
|
|
- const onClose = () => {
|
|
|
- tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/add');
|
|
|
- tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/edit');
|
|
|
- router.push({ name: '/taskAndLog/dotask/index' });
|
|
|
- };
|
|
|
-
|
|
|
- const onFinish=()=>{
|
|
|
+ components: {BUploadFile},
|
|
|
+ setup() {
|
|
|
+ const formState = reactive<FormState>({dataModel: {}});
|
|
|
+ const formTableState = reactive({loading: false});
|
|
|
+ const searchParams = reactive({
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 99
|
|
|
+ });
|
|
|
+ const router = useRouter();
|
|
|
+ const siteuserList = ref<SelectProps['options']>();
|
|
|
+ const regionList = ref<SelectProps['options']>();
|
|
|
+ const streetList = ref<SelectProps['options']>();
|
|
|
+ const taskTypeList = ref<SelectProps['options']>();
|
|
|
+ // const fullpath = router.currentRoute.value.fullPath;
|
|
|
+ const tabsViewStore = useTabsViewStore();
|
|
|
+ const isEdit = true;
|
|
|
+ const fileList = ref();
|
|
|
+ const setFileList = (files) => {
|
|
|
+ fileList.value = files;
|
|
|
+ };
|
|
|
|
|
|
- }
|
|
|
+ get('system/area/getCityList', {}).then(data => {
|
|
|
+ regionList.value = data;
|
|
|
+ });
|
|
|
+
|
|
|
+ get('system/dictionary/getDictionaryItemByCodeList', {code: 'TaskType'}).then(data => {
|
|
|
+ taskTypeList.value = data;
|
|
|
+ });
|
|
|
+
|
|
|
+ //获取所有的驿站人员
|
|
|
+ const getSiteUserList = () => {
|
|
|
+ getUserList().then(data => {
|
|
|
+ siteuserList.value = data;
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ const changeCity = () => {
|
|
|
+ get('system/area/getAreaList', {code: formState.dataModel.regionCode}).then(data => {
|
|
|
+ streetList.value = data;
|
|
|
+ })
|
|
|
+ loadData();
|
|
|
+ }
|
|
|
+
|
|
|
+ const userData = ref([]);
|
|
|
+
|
|
|
+ const loadUserData = (id: any) => {
|
|
|
+ getWorkUserList(id).then(data => {
|
|
|
+ userData.value = data;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ const addUser = () => {
|
|
|
+ console.log('新增');
|
|
|
+ (userData.value as any[]).push({dotaskUserID: null, dotaskID: null, siteUserID: null, userName: ''});
|
|
|
+ }
|
|
|
+ const deleteUser = (record) => {
|
|
|
+ (userData.value as any[]).splice(record, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ const onAdd = () => {
|
|
|
+ tabsViewStore.addTabByPath('', null);
|
|
|
+ };
|
|
|
+ const onDel = () => {
|
|
|
+
|
|
|
+ };
|
|
|
+ const onClose = () => {
|
|
|
+ tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/add');
|
|
|
+ tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/edit');
|
|
|
+ router.push({name: '/taskAndLog/dotask/index'});
|
|
|
+ };
|
|
|
+
|
|
|
+ const onFinish = () => {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ const loadData = () => {
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ const columns: TableColumnsType = [
|
|
|
+ {
|
|
|
+ title: '序号',
|
|
|
+ align: "center",
|
|
|
+ key: 'companyID',
|
|
|
+ width: 120,
|
|
|
+ customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
|
|
|
+ },
|
|
|
+ {title: '姓名', dataIndex: 'Name', key: 'Name', align: "center", width: 120},
|
|
|
+ {title: '操作', key: 'operation', fixed: 'right', width: 120, align: "center"},
|
|
|
+ ]
|
|
|
|
|
|
- const loadData = () => {
|
|
|
-
|
|
|
- };
|
|
|
-
|
|
|
- const columns:TableColumnsType=[
|
|
|
- {
|
|
|
- title: '序号',
|
|
|
- align: "center",
|
|
|
- key: 'companyID',
|
|
|
- customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
|
|
|
- },
|
|
|
- {title: '姓名', dataIndex: 'Name', key: 'Name', align: "center"},
|
|
|
- {title: '性别', dataIndex: 'Gender', key: 'Gender', align: "center"},
|
|
|
- {title: '联系电话', dataIndex: 'Mobile', key: 'Mobile', align: "center"},
|
|
|
- ]
|
|
|
-
|
|
|
- return {
|
|
|
- ...toRefs(formState),
|
|
|
- loadData,
|
|
|
- onClose,
|
|
|
- onFinish,
|
|
|
- onAdd,
|
|
|
- onDel,
|
|
|
- dataList,
|
|
|
- columns,
|
|
|
- formState,
|
|
|
- formTableState,
|
|
|
- setFileList,
|
|
|
- postStatuslist
|
|
|
+ return {
|
|
|
+ ...toRefs(formState),
|
|
|
+ isEdit,
|
|
|
+ loadData,
|
|
|
+ onClose,
|
|
|
+ onFinish,
|
|
|
+ onAdd,
|
|
|
+ onDel,
|
|
|
+ addUser,
|
|
|
+ deleteUser,
|
|
|
+ columns,
|
|
|
+ formState,
|
|
|
+ formTableState,
|
|
|
+ setFileList,
|
|
|
+ regionList,
|
|
|
+ streetList,
|
|
|
+ taskTypeList,
|
|
|
+ siteuserList,
|
|
|
+ getSiteUserList,
|
|
|
+ loadUserData,
|
|
|
+ changeCity
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ const id = history.state.params?.id;
|
|
|
+ console.log(id);
|
|
|
+ this.loadUserData(id);
|
|
|
+ this.getSiteUserList();
|
|
|
}
|
|
|
- }
|
|
|
-})
|
|
|
+ })
|
|
|
</script>
|
|
|
|