This commit is contained in:
zmj 2024-02-02 23:31:09 +08:00
parent c982e885b6
commit d643900fe6
3 changed files with 57 additions and 28 deletions

BIN
dist (2).zip Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
<template>
<div>
<!-- <el-card class="!border-none" shadow="never">
<el-card class="!border-none" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="负责人名称" prop="name">
<el-input
@ -26,10 +26,11 @@
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-form>
</el-card> -->
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
<div class="mt-4">
<el-table :data="pager.lists" @cell-click="handleCurrentChange">
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="账号" prop="account" min-width="120" />
<el-table-column label="头像" prop="avatar" min-width="80">
<template #default="{ row }">
@ -60,6 +61,15 @@
<div class="flex mt-4 justify-end">
<pagination v-model="pager" @change="getLists" />
</div>
<template #footer>
<div style="float: right;">
<el-button @click="offPop">取消</el-button>
<el-button type="primary" @click="handleCurrentChange">确定</el-button>
</div>
</template>
</el-card>
</div>
</template>
@ -81,7 +91,9 @@ const { optionsData } = useDictOptions<{
});
//
const queryParams = reactive({
company_id: "",
nickname:"",
role_id:""
});
const props = defineProps({
company_id: {
@ -89,15 +101,27 @@ const props = defineProps({
defaults: 0,
},
});
queryParams.company_id = props.company_id;
// queryParams.company_id = props.company_id;
//
const emits = defineEmits(["customEvent"]);
//
const selectData = ref<any[]>([])
//
const handleSelectionChange = (val: any[]) => {
selectData.value = val.map((item) => ( {id:item.id,nickName:item.nickname} ))
}
const emits = defineEmits(["customEvent",'off']);
//
const handleCurrentChange = (value: any) => {
emits("customEvent", value);
const handleCurrentChange = () => {
emits("customEvent", selectData);
};
const offPop=()=> (
emits("off")
)
//
const { pager, getLists, resetParams, resetPage } = usePaging({

View File

@ -15,14 +15,14 @@
<!-- <el-select v-model="formData.type" clearable placeholder="请输入任务类型" @change="changeTaskType" style="width:100%">
<el-option v-for="(item, index) in roleTypeList" :key="item" :value="item.id" :label="item.name" />
</el-select> -->
<el-input placeholder="请输入任务名称" v-model="formData.title" />
<el-input placeholder="请输入任务名称" v-model="formData.title" />
</el-form-item>
<!-- <el-form-item label="任务下发时间" prop="cron_time">
<el-date-picker format="YYYY/MM/DD" value-format="YYYY-MM-DD" :disabled="mode != 'add'" v-model="formData.cron_time" type="date"
placeholder="请选择时间" style="width: 50vw;" />
</el-form-item> -->
<!-- <el-form-item
v-if="formData.type == 32"
label="起点"
@ -41,8 +41,8 @@
<el-form-item v-if="formData.type == 32" label="终点" @click="changeMap(2)" prop="extend.terminus.address">
<el-input placeholder="请选择终点" readonly :value="formData.extend?.terminus?.address" />
</el-form-item> -->
<el-form-item label="负责人" prop="director_uid" @click="clickTaskAdmin">
<el-input placeholder="请选择负责人" :disabled="mode !='add'" readonly v-model="formData.task_admin_name" />
<el-form-item label="负责人" prop="director_uid" @click="clickTaskAdmin">
<el-input placeholder="请选择负责人" :disabled="mode != 'add'" readonly v-model="formData.task_admin_name" />
</el-form-item>
<!-- <el-form-item label="阶段类型" prop="types">
<div>
@ -102,19 +102,19 @@
<el-radio :label="2">显示</el-radio>
<el-radio :label="5">隐藏</el-radio>
</el-radio-group>
</el-form-item>
</el-form-item>
<el-form-item label="完成时间" prop="end_time">
<el-date-picker format="YYYY/MM/DD" value-format="YYYY-MM-DD" :disabled="mode != 'add'" v-model="formData.end_time" type="date"
placeholder="请选择时间" style="width: 50vw;" />
<el-date-picker format="YYYY/MM/DD" value-format="YYYY-MM-DD" :disabled="mode != 'add'"
v-model="formData.end_time" type="date" placeholder="请选择时间" style="width: 50vw;" />
</el-form-item>
<el-form-item label="任务描述" prop="content">
<el-input v-model="formData.content" clearable placeholder="请输入任务描述" type="textarea"
autosize />
<el-input v-model="formData.content" clearable placeholder="请输入任务描述" type="textarea" autosize />
</el-form-item>
</el-form>
<taskMap v-if="mapShow" ref="mapRef" @success="setMap" @close=""></taskMap>
<el-dialog v-model="personnelShow" ref="personnelRef" title="选择负责人" width="60%">
<personnelPopup @custom-event="changePersonner" :company_id="formData.company_id"></personnelPopup>
<personnelPopup @custom-event="changePersonner" @off="personnelShow = false" :company_id="formData.company_id">
</personnelPopup>
</el-dialog>
</popup>
</div>
@ -129,7 +129,7 @@ import {
apiTaskTemplateDetail,
apiTaskTypeList,
} from "@/api/task_template";
import {addTask,taskList,editTask} from "@/api/newTask"
import { addTask, taskList, editTask } from "@/api/newTask"
import { apiSelectList, apiCreatetaskTypeInfo } from '@/api/create_task_template'
@ -168,14 +168,14 @@ const formData = reactive({
status: "",
content: "",
// cron_time: "",//
end_time:"",//
end_time: "",//
// stage_day_one: 0,
// money: 0, //
// stage_day_two: 0,
// money_two: 0, //
// money_three: 0, //
// types: "", //
director_uid: "", //
director_uid: [], //
task_admin_name: "", //
// recharge: "",
// extend: {
@ -206,9 +206,9 @@ if (route.query.company_type == 18) {
const roleTypeList = ref('')
//
apiTaskTypeList({ type_value: type_value}).then((res) => {
apiTaskTypeList({ type_value: type_value }).then((res) => {
datalist.value = res.lists;
roleTypeList.value=res.lists
roleTypeList.value = res.lists
});
//
@ -419,8 +419,13 @@ const setMap = (e: any) => {
const personnelShow = ref(false);
const personnelRef = shallowRef<InstanceType<typeof personnelPopup>>();
const changePersonner = (e: any) => {
formData.director_uid = e.id;
formData.task_admin_name = e.nickname;
const transformedArr = e.value.reduce((acc:any, obj:any) => {
acc[0].push(obj.id);
acc[1].push(obj.nickName);
return acc;
}, [[], []]);
formData.director_uid = transformedArr[0];
formData.task_admin_name = transformedArr[1].join(',');
personnelShow.value = false;
};
@ -433,11 +438,11 @@ const handleSubmit = async () => {
await formRef.value?.validate();
const data = { ...formData };
const {title,content,status,id}=data
const { title, content, status, id } = data
// if (data.type != 32) data.extend = {}; // ,
mode.value == "edit"
? await editTask({title,content,status,id})
? await editTask({ title, content, status, id })
: await addTask(data);
popupRef.value?.close();
emit("success");
@ -461,7 +466,7 @@ defineExpose({
});
</script>
<style>
.el-input__wrapper{
.el-input__wrapper {
width: 100% !important;
}
</style>