|
@@ -91,24 +91,38 @@
|
|
</Space>
|
|
</Space>
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
- <a-divider orientation="left">任务执行人员</a-divider>
|
|
|
|
|
|
+ <a-divider orientation="left">任务执行人员 共计:{{userData.length}}</a-divider>
|
|
<a-row>
|
|
<a-row>
|
|
<a-col style="margin-bottom: 20px;">
|
|
<a-col style="margin-bottom: 20px;">
|
|
- <a-table :columns="columns" :data-source="userData" :pagination="false"
|
|
|
|
|
|
+ <a-table :columns="columns" :data-source="userData" :pagination="pagination"
|
|
|
|
+ :loading="formState.loading"
|
|
|
|
+ @change="handleTableChange"
|
|
|
|
+ :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange}"
|
|
|
|
+ :row-key="record=>record.siteId"
|
|
bordered>
|
|
bordered>
|
|
<template #bodyCell="{ column ,index}">
|
|
<template #bodyCell="{ column ,index}">
|
|
- <template v-if="column.key === 'siteUserID'">
|
|
|
|
|
|
+ <template v-if="column.key === 'siteUserName'">
|
|
<div>
|
|
<div>
|
|
- <a-select
|
|
|
|
|
|
+ <a-input v-model:value="userData[index][column.key]" style="border:none;text-align: center;"></a-input>
|
|
|
|
+<!-- <a-select
|
|
ref="select"
|
|
ref="select"
|
|
v-model:value="userData[index][column.key]"
|
|
v-model:value="userData[index][column.key]"
|
|
:options="siteUserList"
|
|
:options="siteUserList"
|
|
:field-names="{ label: 'siteUserName', value: 'siteUserID' }"
|
|
:field-names="{ label: 'siteUserName', value: 'siteUserID' }"
|
|
:allow-clear="true" style="width: 200px"
|
|
:allow-clear="true" style="width: 200px"
|
|
>
|
|
>
|
|
- </a-select>
|
|
|
|
|
|
+ </a-select>-->
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
+ <template v-if="column.key === 'genderName'">
|
|
|
|
+ {{userData[index][column.key]}}
|
|
|
|
+ </template>
|
|
|
|
+ <template v-if="column.key === 'mobile'">
|
|
|
|
+ {{userData[index][column.key]}}
|
|
|
|
+ </template>
|
|
|
|
+ <template v-if="column.key === 'taskStatusName'">
|
|
|
|
+ {{userData[index][column.key]}}
|
|
|
|
+ </template>
|
|
<template v-if="column.key === 'operation'">
|
|
<template v-if="column.key === 'operation'">
|
|
<a-button type="link" size="small" @click="deleteUser(index)">删除</a-button>
|
|
<a-button type="link" size="small" @click="deleteUser(index)">删除</a-button>
|
|
</template>
|
|
</template>
|
|
@@ -119,7 +133,7 @@
|
|
|
|
|
|
<a-divider orientation="left">其他信息</a-divider>
|
|
<a-divider orientation="left">其他信息</a-divider>
|
|
<b-upload-file
|
|
<b-upload-file
|
|
- :file-ref-id="dataModel.dotaskID"
|
|
|
|
|
|
+ :file-ref-id="dataModel.doTaskID"
|
|
:readonly="false"
|
|
:readonly="false"
|
|
:multiple="true"
|
|
:multiple="true"
|
|
:set-file-list="setFileList"
|
|
:set-file-list="setFileList"
|
|
@@ -130,42 +144,79 @@
|
|
<a-button type="primary" html-type="submit">提交</a-button>
|
|
<a-button type="primary" html-type="submit">提交</a-button>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</a-form>
|
|
</a-form>
|
|
|
|
+ <SiteUserModel ref="modalSiteUserRef"></SiteUserModel>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
-import {defineComponent, reactive, ref, toRefs} from 'vue';
|
|
|
|
-// import {useRouter} from 'vue-router';
|
|
|
|
-import type {SelectProps, TableColumnsType} from 'ant-design-vue';
|
|
|
|
|
|
+import {computed, defineComponent, reactive, ref, toRefs} from 'vue';
|
|
|
|
+import type {SelectProps, TableColumnsType, TableProps} from 'ant-design-vue';
|
|
import {useTabsViewStore} from '@/store/modules/tabsView';
|
|
import {useTabsViewStore} from '@/store/modules/tabsView';
|
|
import BUploadFile from '@/components/file/uploadFile.vue';
|
|
import BUploadFile from '@/components/file/uploadFile.vue';
|
|
|
|
+import SiteUserModel from "./siteUser.vue"
|
|
import {get} from "@/api/common";
|
|
import {get} from "@/api/common";
|
|
import {getUserList, getWorkUserList, getDataById, save} from '@/api/taskAndLog/dotask'
|
|
import {getUserList, getWorkUserList, getDataById, save} from '@/api/taskAndLog/dotask'
|
|
|
|
+import {getPaginationTotalTitle} from "@/utils/common";
|
|
|
|
|
|
-interface FormState {
|
|
|
|
|
|
+interface taskModel {
|
|
dataModel: any;
|
|
dataModel: any;
|
|
}
|
|
}
|
|
|
|
|
|
export default defineComponent(
|
|
export default defineComponent(
|
|
{
|
|
{
|
|
- components: {BUploadFile},
|
|
|
|
|
|
+ components: {BUploadFile,SiteUserModel},
|
|
setup() {
|
|
setup() {
|
|
- const formState = reactive<FormState>({dataModel: {}});
|
|
|
|
- const formTableState = reactive({loading: false});
|
|
|
|
|
|
+ const isEdit = true;
|
|
|
|
+ const modalSiteUserRef = ref();
|
|
|
|
+ const formData = reactive<taskModel>({dataModel: {}});
|
|
const searchParams = reactive({
|
|
const searchParams = reactive({
|
|
pageIndex: 1,
|
|
pageIndex: 1,
|
|
- pageSize: 99
|
|
|
|
|
|
+ pageSize: 10
|
|
|
|
+ });
|
|
|
|
+ const pagination = computed(() => ({
|
|
|
|
+ total: formState.total,
|
|
|
|
+ current: searchParams.pageIndex,
|
|
|
|
+ pageSize: searchParams.pageSize,
|
|
|
|
+ showSizeChanger: true,
|
|
|
|
+ showTotal: total => getPaginationTotalTitle(total)
|
|
|
|
+ }));
|
|
|
|
+ const tabsViewStore = useTabsViewStore();
|
|
|
|
+ const onSelectChange = (selectedRowKeys: any) => {
|
|
|
|
+ formState.selectedRowKeys = selectedRowKeys;
|
|
|
|
+ };
|
|
|
|
+ const handleTableChange: TableProps['onChange'] = (pag: { pageSize: number; current: number }) => {
|
|
|
|
+ searchParams.pageIndex = pag.current;
|
|
|
|
+ searchParams.pageSize = pag.pageSize;
|
|
|
|
+ };
|
|
|
|
+ const formState = reactive({
|
|
|
|
+ total: 0,
|
|
|
|
+ selectedRowKeys: [],
|
|
|
|
+ loading: false
|
|
});
|
|
});
|
|
- // const router = useRouter();
|
|
|
|
|
|
+ const columns: TableColumnsType = [
|
|
|
|
+ {
|
|
|
|
+ title: '序号', align: "center", key: 'doTaskID', width: 120,
|
|
|
|
+ customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '姓名', dataIndex: 'siteUserName', key: 'siteUserName', align: "center", width: 120
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '性别', dataIndex: 'genderName', key: 'genderName', align: "center", width: 120
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '联系电话',dataIndex: 'mobile',key: 'mobile', align: "center", width: 120
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '执行情况',dataIndex: 'taskStatusName',key: 'taskStatusName',align: "center",width: 120
|
|
|
|
+ },
|
|
|
|
+ {title: '操作', key: 'operation', fixed: 'right', width: 120, align: "center"},
|
|
|
|
+ ]
|
|
|
|
+ const fileList = ref();
|
|
const siteUserList = ref([]);
|
|
const siteUserList = ref([]);
|
|
const regionList = ref<SelectProps['options']>();
|
|
const regionList = ref<SelectProps['options']>();
|
|
const streetList = ref<SelectProps['options']>();
|
|
const streetList = ref<SelectProps['options']>();
|
|
const taskTypeList = 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) => {
|
|
const setFileList = (files) => {
|
|
fileList.value = files;
|
|
fileList.value = files;
|
|
};
|
|
};
|
|
@@ -179,7 +230,7 @@ export default defineComponent(
|
|
});
|
|
});
|
|
|
|
|
|
const regionChange =async function(){
|
|
const regionChange =async function(){
|
|
- formState.dataModel.streetCode = null;
|
|
|
|
|
|
+ formData.dataModel.streetCode = null;
|
|
changeCity();
|
|
changeCity();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -191,8 +242,8 @@ export default defineComponent(
|
|
}
|
|
}
|
|
|
|
|
|
const changeCity = () => {
|
|
const changeCity = () => {
|
|
- if(formState.dataModel.regionCode){
|
|
|
|
- get('system/area/getAreaList', {code: formState.dataModel.regionCode}).then(data => {
|
|
|
|
|
|
+ if(formData.dataModel.regionCode){
|
|
|
|
+ get('system/area/getAreaList', {code: formData.dataModel.regionCode}).then(data => {
|
|
streetList.value = data;
|
|
streetList.value = data;
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -208,29 +259,26 @@ export default defineComponent(
|
|
}
|
|
}
|
|
|
|
|
|
const addUser = () => {
|
|
const addUser = () => {
|
|
- (userData.value as any[]).push({siteUserID: null, name: ''});
|
|
|
|
-
|
|
|
|
|
|
+ /*if(siteUserList.value.length>0){
|
|
|
|
+ const defaultSiteUser:any = siteUserList.value[0];
|
|
|
|
+ console.log("hhh",defaultSiteUser);
|
|
|
|
+ (userData.value as any[]).push({siteUserID: defaultSiteUser.siteUserID,siteUserName:defaultSiteUser.siteUserName,genderName:defaultSiteUser.genderName,mobile:defaultSiteUser.mobile,taskStatusName:"待完成"});
|
|
|
|
+ }*/
|
|
|
|
+ modalSiteUserRef.value.show(formData.dataModel.doTaskID);
|
|
}
|
|
}
|
|
const deleteUser = (record) => {
|
|
const deleteUser = (record) => {
|
|
(userData.value as any[]).splice(record, 1);
|
|
(userData.value as any[]).splice(record, 1);
|
|
}
|
|
}
|
|
|
|
|
|
- const onAdd = () => {
|
|
|
|
- tabsViewStore.addTabByPath('', null);
|
|
|
|
- };
|
|
|
|
- const onDel = () => {
|
|
|
|
-
|
|
|
|
- };
|
|
|
|
const onClose = (reload: any) => {
|
|
const onClose = (reload: any) => {
|
|
tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/add');
|
|
tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/add');
|
|
tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/edit');
|
|
tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/edit');
|
|
- // router.push({name: '/taskAndLog/dotask/index'});
|
|
|
|
tabsViewStore.openTab('/taskAndLog/dotask/index', {reload: reload});
|
|
tabsViewStore.openTab('/taskAndLog/dotask/index', {reload: reload});
|
|
};
|
|
};
|
|
|
|
|
|
const onFinish = () => {
|
|
const onFinish = () => {
|
|
- formState.dataModel.doTaskUser = userData.value;
|
|
|
|
- save(formState.dataModel).then(result => {
|
|
|
|
|
|
+ formData.dataModel.doTaskUser = userData.value;
|
|
|
|
+ save(formData.dataModel).then(result => {
|
|
if (result) {
|
|
if (result) {
|
|
onClose(1)
|
|
onClose(1)
|
|
}
|
|
}
|
|
@@ -239,52 +287,37 @@ export default defineComponent(
|
|
|
|
|
|
const loadData = (id: any) => {
|
|
const loadData = (id: any) => {
|
|
getDataById(id).then(data => {
|
|
getDataById(id).then(data => {
|
|
- formState.dataModel = data;
|
|
|
|
|
|
+ formData.dataModel = data;
|
|
changeCity();
|
|
changeCity();
|
|
});
|
|
});
|
|
};
|
|
};
|
|
|
|
|
|
- const columns: TableColumnsType = [
|
|
|
|
- {
|
|
|
|
- title: '序号',
|
|
|
|
- align: "center",
|
|
|
|
- key: 'doTaskID',
|
|
|
|
- width: 120,
|
|
|
|
- customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '人员',
|
|
|
|
- dataIndex: 'siteUserID',
|
|
|
|
- key: 'siteUserID',
|
|
|
|
- align: "center",
|
|
|
|
- width: 120
|
|
|
|
- },
|
|
|
|
- {title: '操作', key: 'operation', fixed: 'right', width: 120, align: "center"},
|
|
|
|
- ]
|
|
|
|
|
|
+
|
|
|
|
|
|
return {
|
|
return {
|
|
- ...toRefs(formState),
|
|
|
|
|
|
+ ...toRefs(formData),
|
|
|
|
+ modalSiteUserRef,
|
|
isEdit,
|
|
isEdit,
|
|
- loadData,
|
|
|
|
- onClose,
|
|
|
|
- onFinish,
|
|
|
|
- onAdd,
|
|
|
|
- onDel,
|
|
|
|
- addUser,
|
|
|
|
- deleteUser,
|
|
|
|
columns,
|
|
columns,
|
|
|
|
+ pagination,
|
|
formState,
|
|
formState,
|
|
- formTableState,
|
|
|
|
- setFileList,
|
|
|
|
- regionList,
|
|
|
|
userData,
|
|
userData,
|
|
|
|
+ regionList,
|
|
streetList,
|
|
streetList,
|
|
taskTypeList,
|
|
taskTypeList,
|
|
siteUserList,
|
|
siteUserList,
|
|
|
|
+ loadData,
|
|
|
|
+ onClose,
|
|
|
|
+ onFinish,
|
|
|
|
+ addUser,
|
|
|
|
+ deleteUser,
|
|
|
|
+ setFileList,
|
|
getSiteUserList,
|
|
getSiteUserList,
|
|
loadUserData,
|
|
loadUserData,
|
|
changeCity,
|
|
changeCity,
|
|
- regionChange
|
|
|
|
|
|
+ regionChange,
|
|
|
|
+ onSelectChange,
|
|
|
|
+ handleTableChange
|
|
}
|
|
}
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|