From 3d3e7f45086799fdd7a412e2079710a6cdf8dc2b Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 24 十月 2024 08:30:04 +0800 Subject: [PATCH] Merge branch 'lsf-dataproduct-1018' --- src/views/fysp/task/components/CompSubTaskEdit.vue | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 170 insertions(+), 0 deletions(-) diff --git a/src/views/fysp/task/components/CompSubTaskEdit.vue b/src/views/fysp/task/components/CompSubTaskEdit.vue new file mode 100644 index 0000000..f80a20a --- /dev/null +++ b/src/views/fysp/task/components/CompSubTaskEdit.vue @@ -0,0 +1,170 @@ +<template> + <FYForm + ref="formRef" + :form-info="formInfo" + :rules="rules" + :useCancel="true" + @submit="submit" + @cancel="cancel" + > + <template #form-item="{ formObj }"> + <el-form-item label="浠诲姟鍚嶇О" prop="name"> + <el-input disabled v-model="formObj.name" placeholder="浠诲姟鍚嶇О" /> + </el-form-item> + <el-form-item label="鍦烘櫙鍦板潃" prop="name"> + <el-input + disabled + v-model="formObj.scenseaddress" + placeholder="鍦烘櫙鍦板潃" + /> + </el-form-item> + <FYOptionTime + label="璁″垝鏃堕棿" + prop="planstarttime" + :initValue="false" + type="date" + v-model:value="formObj.planstarttime" + @change="handleTimeChange" + ></FYOptionTime> + <el-form-item label="鎵ц浜�" prop="_executors"> + <el-select + v-model="formObj._executors" + multiple + clearable + collapse-tags + placeholder="閫夋嫨鎵ц浜�" + :max-collapse-tags="3" + style="width: 300px" + > + <el-option + v-for="s in executorOptions" + :key="s.value" + :label="s.label" + :value="s.value" + /> + </el-select> + </el-form-item> + </template> + </FYForm> +</template> +<script setup> +import { ref, computed, onMounted, reactive } from 'vue'; +import subtaskApi from '@/api/fysp/subtaskApi'; +import userApi from '@/api/fysp/userApi'; +import dayjs from 'dayjs'; + +const props = defineProps({ + //鍩烘湰淇℃伅 + modelValue: Object, + //鏄垱寤烘垨鑰呮洿鏂� + create: Boolean +}); + +const emit = defineEmits(['submit', 'cancel', 'update:modelValue']); + +const formRef = ref(null); +// 浠诲姟鎵ц浜洪�夐」 +const executorOptions = ref([]); +const formInfo = computed(() => { + return { + ...props.modelValue, + _executors: props.modelValue + ? props.modelValue.executorguids.split('#') + : [] + }; +}); + +const rules = reactive({ + name: [ + { + required: true, + message: '鍦烘櫙鍚嶇О涓嶈兘涓虹┖', + trigger: 'blur' + } + ], + _scenetype: [ + { + required: true, + message: '鍦烘櫙绫诲瀷涓嶈兘涓虹┖', + trigger: 'change' + } + ] +}); + +function handleTimeChange(time) { + formRef.value.formObj.planendtime = dayjs(time).endOf('day').set('millisecond', 0) +} + +function getExecutors(data) { + const ids = []; + const uNames = []; + const rNames = []; + executorOptions.value.forEach((e) => { + const index = data._executors.indexOf(e.value); + if (index != -1) { + ids.push(e.data.guid); + uNames.push(e.data.acountname); + rNames.push(e.data.realname); + } + }); + return { + id: ids.join('#'), + uName: uNames.join('#'), + rName: rNames.join('#') + }; +} + +// 鍒涘缓鏂板満鏅� +function createScene(v, success, fail) { + // return sceneApi + // .createScene(v) + // .then(() => { + // emit('onSubmit', v); + // success(); + // }) + // .catch((err) => { + // fail(err); + // }); +} +// 鏇存柊鍦烘櫙 +function updateScene(v, success, fail) { + return subtaskApi + .adjustSubtask(v) + .then(() => { + emit('update:modelValue', v) + emit('submit', v); + success(); + }) + .catch((err) => { + fail(err); + }); +} +function submit(v, success, fail) { + const executors = getExecutors(v.value); + v.value.executorguids = executors.id + v.value.executorusernames = executors.uName + v.value.executorrealtimes = executors.rName + return props.create + ? createScene(v.value, success, fail) + : updateScene(v.value, success, fail); +} +function cancel() { + emit('cancel'); +} + +function initOptions() { + userApi.getUserByType(1).then((res) => { + executorOptions.value = res.map((v) => { + return { + label: v.realname, + value: v.guid, + data: v + }; + }); + }); +} + +onMounted(() => { + initOptions(); +}); +</script> -- Gitblit v1.9.3