Compare commits

..

No commits in common. 'dee8202b7ae91665055fa0e70ed5d7b2451b6bde' and '61b313862154d925f61883969bd20ea8b3ac6a2f' have entirely different histories.

  1. 226
      ant-design-vue-jeecg/src/views/task/modules/TaskForm.vue
  2. 11
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/task/controller/TaskController.java

@ -5,17 +5,24 @@
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="上级任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="upperName"> <a-form-model-item label="上级任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="upperName">
<j-popup v-model="model.upperTaskName" field="upperTaskName" org-fields="id,task_name" <j-popup
dest-fields="upperId,upperTaskName" code="taskname" :multi="true" @input="popupCallback" /> v-model="model.upperTaskName"
field="upperTaskName"
org-fields="id,task_name"
dest-fields="upperId,upperTaskName"
code="taskname"
:multi="true"
@input="popupCallback"
/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<!-- <a-col :span="24">--> <!-- <a-col :span="24">-->
<!-- <a-form-model-item label="上级任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="upperId">--> <!-- <a-form-model-item label="上级任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="upperId">-->
<!-- <j-dict-select-tag v-model="model.upperId" placeholder="请选择所属上级任务"--> <!-- <j-dict-select-tag v-model="model.upperId" placeholder="请选择所属上级任务"-->
<!-- :dict-code="task" style="width: 100%">--> <!-- :dict-code="task" style="width: 100%">-->
<!-- </j-dict-select-tag>--> <!-- </j-dict-select-tag>-->
<!-- </a-form-model-item>--> <!-- </a-form-model-item>-->
<!-- </a-col>--> <!-- </a-col>-->
<a-col :span="24" style="display: none;"> <a-col :span="24" style="display: none;">
<a-form-model-item label="上级任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="upperId"> <a-form-model-item label="上级任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="upperId">
<a-input v-model="model.upperId" placeholder="请选择所属上级任务"></a-input> <a-input v-model="model.upperId" placeholder="请选择所属上级任务"></a-input>
@ -24,27 +31,26 @@
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="任务等级" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workLevel"> <a-form-model-item label="任务等级" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workLevel">
<!-- <a-input-number :min="1" :max="16" v-model="model.workLevel" placeholder="请输入任务等级" style="width: 100%" />--> <!-- <a-input-number :min="1" :max="16" v-model="model.workLevel" placeholder="请输入任务等级" style="width: 100%" />-->
<j-dict-select-tag v-model="model.workLevel" type="radio" placeholder="请选择任务等级" dict-code="workLevel" <j-dict-select-tag v-model="model.workLevel" type="radio" placeholder="请选择任务等级" dict-code="workLevel" style="width: 100%">
style="width: 100%">
</j-dict-select-tag> </j-dict-select-tag>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col> <a-col >
<a-form-model-item label="任务层级" :labelCol="labelCol1" :wrapperCol="wrapperCol1" prop="level"> <a-form-model-item label="任务层级" :labelCol="labelCol1" :wrapperCol="wrapperCol1" prop="level">
<j-dict-select-tag v-model="model.level" type="radio" style="width: 100%" dictCode="task_type_level" /> <j-dict-select-tag v-model="model.level" type="radio" style="width: 100%" dictCode="task_type_level"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col> <a-col >
<a-form-model-item label="任务类型" :labelCol="labelCol1" :wrapperCol="wrapperCol1" prop="typeId"> <a-form-model-item label="任务类型" :labelCol="labelCol1" :wrapperCol="wrapperCol1" prop="typeId">
<!-- <j-dict-select-tag v-model="model.typeId" type="radio" style="width: 100%" dict-code="task_type,type_name,id"/> --> <!-- <j-dict-select-tag v-model="model.typeId" type="radio" style="width: 100%" dict-code="task_type,type_name,id"/> -->
<div v-for="item in options" :key="item.id" class="a"> <div v-for="item in options" :key="item.id" class="a">
<span style="margin-right: 10px;" class="B">{{ item.type_Name }} </span> <span style="margin-right: 10px;" class="B">{{ item.type_Name }} </span>
<a-radio-group v-model="model.typeId" :key="`children-${item.id}`"> <a-radio-group v-model="model.typeId" :key="`children-${item.id}`" >
<a-radio v-for="child in item.children" :key="child.id" :value="child.id"> <a-radio v-for="child in item.children" :key="child.id" :value="child.id">
<span>{{ child.type_Name }}</span> <span>{{ child.type_Name }}</span>
</a-radio> </a-radio>
@ -56,59 +62,66 @@
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="项目" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="projectId"> <a-form-model-item label="项目" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="projectId">
<j-dict-select-tag v-model="model.projectId" placeholder="请选择项目" dict-code="projectx,project_name,id" <j-dict-select-tag
style="width: 100%" :disabled="model.typeId == null" @change="fillTaskName"> v-model="model.projectId"
placeholder="请选择项目"
dict-code="projectx,project_name,id"
style="width: 100%"
:disabled="model.typeId==null"
@change="fillTaskName" >
</j-dict-select-tag> </j-dict-select-tag>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="中文名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskName"> <a-form-model-item label="中文名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskName">
<!-- <a-input v-model="model.taskName" placeholder="请输入中文名称"--> <!-- <a-input v-model="model.taskName" placeholder="请输入中文名称"-->
<!-- autocomplete="on" --> <!-- autocomplete="on" -->
<!-- :disabled="model.typeId==null">--> <!-- :disabled="model.typeId==null">-->
<!-- </a-input>--> <!-- </a-input>-->
<a-textarea v-model="model.taskName" placeholder="请输入中文名称" autocomplete="on" <a-textarea v-model="model.taskName"
:disabled="model.typeId == null" auto-size /> placeholder="请输入中文名称"
autocomplete="on"
:disabled="model.typeId==null"
auto-size />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="责任人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="managerUsers"> <a-form-model-item label="责任人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="managerUsers">
<j-multi-select-tag type="list_multi" v-model="model.managerUsers" dictCode="sys_user,realname,id" <j-multi-select-tag type="list_multi" v-model="model.managerUsers" dictCode="sys_user,realname,id" placeholder="请选择责任人"/>
placeholder="请选择责任人" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="模块" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moduleId"> <a-form-model-item label="模块" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="moduleId">
<!-- <a-input v-model="model.moduleId" placeholder="请输入模块" modulex,module_name,id></a-input>--> <!-- <a-input v-model="model.moduleId" placeholder="请输入模块" modulex,module_name,id></a-input>-->
<j-dict-select-tag v-model="model.moduleId" placeholder="请选择模块" :dict-code="this.modulex" style="width: 80%" <j-dict-select-tag v-model="model.moduleId" placeholder="请选择模块" :dict-code="this.modulex"
@change="fillModuleName()"></j-dict-select-tag> style="width: 80%" @change="fillModuleName()"></j-dict-select-tag>
<a-button @click="handleAdd3" type="primary" icon="plus" style="width: 20%;"></a-button> <a-button @click="handleAdd3" type="primary" icon="plus" style="width: 20%;"></a-button>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="功能" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="functionId"> <a-form-model-item label="功能" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="functionId">
<!-- <a-input v-model="model.functionId" placeholder="请输入功能id" functionx,function_name,id></a-input>--> <!-- <a-input v-model="model.functionId" placeholder="请输入功能id" functionx,function_name,id></a-input>-->
<j-dict-select-tag v-model="model.functionId" placeholder="请选择功能" :dict-code="functionx" style="width: 80%" <j-dict-select-tag v-model="model.functionId" placeholder="请选择功能"
@change="fillFunctionName()"></j-dict-select-tag> :dict-code="functionx"
<a-button @click="handleAdd1(model.moduleId)" type="primary" icon="plus" style="width: 20%;"></a-button> style="width: 80%" @change="fillFunctionName()"></j-dict-select-tag>
<a-button @click="handleAdd1(model.moduleId)" type="primary" icon="plus" style="width: 20%;" ></a-button>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="规则" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ruleId"> <a-form-model-item label="规则" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ruleId">
<!-- <a-input v-model="model.ruleId" placeholder="请输入规则id" rulex,rule_no,id></a-input>--> <!-- <a-input v-model="model.ruleId" placeholder="请输入规则id" rulex,rule_no,id></a-input>-->
<j-dict-select-tag v-model="model.ruleId" placeholder="请选择规则" :dict-code="rulex" <j-dict-select-tag v-model="model.ruleId" placeholder="请选择规则" :dict-code="rulex"
style="width: 80%"></j-dict-select-tag> style="width: 80%"></j-dict-select-tag>
<a-button @click="handleAdd2(model.functionId, model.moduleId)" type="primary" icon="plus" <a-button @click="handleAdd2(model.functionId,model.moduleId)" type="primary" icon="plus" style="width: 20%;"></a-button>
style="width: 20%;"></a-button>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col> <a-col >
<a-form-model-item label="任务状态" :labelCol="labelCol1" :wrapperCol="wrapperCol1" prop="workStatus"> <a-form-model-item label="任务状态" :labelCol="labelCol1" :wrapperCol="wrapperCol1" prop="workStatus">
<!-- <a-input-number :min="1" :max="16" v-model="model.workStatus" placeholder="请输入任务状态" style="width: 100%" />--> <!-- <a-input-number :min="1" :max="16" v-model="model.workStatus" placeholder="请输入任务状态" style="width: 100%" />-->
<j-dict-select-tag v-model="model.workStatus" type="radio" dict-code="task_work_status" <j-dict-select-tag v-model="model.workStatus" type="radio" dict-code="task_work_status"
placeholder="请选择任务状态" style="width: 100%" /> placeholder="请选择任务状态" style="width: 100%"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
@ -116,7 +129,7 @@
<a-col> <a-col>
<a-form-model-item label="任务描述" :labelCol="labelCol2" :wrapperCol="wrapperCol2" prop="taskDescribe"> <a-form-model-item label="任务描述" :labelCol="labelCol2" :wrapperCol="wrapperCol2" prop="taskDescribe">
<!-- <a-input type="textarea" v-model="model.taskDescribe" :rows="2"/> --> <!-- <a-input type="textarea" v-model="model.taskDescribe" :rows="2"/> -->
<j-editor v-model="model.taskDescribe" /> <j-editor v-model="model.taskDescribe"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
@ -124,37 +137,36 @@
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="发布时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="publishTime"> <a-form-model-item label="发布时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="publishTime">
<!-- <j-date placeholder="请选择发布时间" v-model="model.publishTime" style="width: 100%"/>--> <!-- <j-date placeholder="请选择发布时间" v-model="model.publishTime" style="width: 100%"/>-->
<a-date-picker showTime valueFormat="YYYY-MM-DD HH:mm:ss" v-model="model.startTime" style="width: 100%" /> <a-date-picker showTime valueFormat="YYYY-MM-DD HH:mm:ss" v-model="model.startTime" style="width: 100%"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="预计结束时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="expectedEndTime"> <a-form-model-item label="预计结束时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="expectedEndTime">
<!-- <j-date placeholder="请选择预计结束时间" v-model="model.expectedEndTime" style="width: 100%"/>--> <!-- <j-date placeholder="请选择预计结束时间" v-model="model.expectedEndTime" style="width: 100%"/>-->
<a-date-picker showTime valueFormat="YYYY-MM-DD HH:mm:ss" v-model="model.expectedEndTime" <a-date-picker showTime valueFormat="YYYY-MM-DD HH:mm:ss" v-model="model.expectedEndTime" style="width: 100%"/>
style="width: 100%" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="预计时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="expectedDuration"> <a-form-model-item label="预计时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="expectedDuration">
<a-input-number v-model="model.expectedDuration" placeholder="请输入预计时长" style="width: 100%" @blur="expectedDuration()"/> <a-input-number v-model="model.expectedDuration" placeholder="请输入预计时长" style="width: 100%"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="实际时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="realDuration"> <a-form-model-item label="实际时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="realDuration">
<a-input-number v-model="model.realDuration" placeholder="请输入实际时长" style="width: 100%" /> <a-input-number v-model="model.realDuration" placeholder="请输入实际时长" style="width: 100%"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="startTime"> <a-form-model-item label="开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="startTime">
<!-- <j-date placeholder="请选择开始时间" v-model="model.startTime" style="width: 100%"/>--> <!-- <j-date placeholder="请选择开始时间" v-model="model.startTime" style="width: 100%"/>-->
<a-date-picker showTime valueFormat="YYYY-MM-DD HH:mm:ss" v-model="model.startTime" style="width: 100%" /> <a-date-picker showTime valueFormat="YYYY-MM-DD HH:mm:ss" v-model="model.startTime" style="width: 100%"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="提交时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="submitTime"> <a-form-model-item label="提交时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="submitTime">
<!-- <j-date placeholder="请选择提交时间" v-model="model.submitTime" style="width: 100%"/>--> <!-- <j-date placeholder="请选择提交时间" v-model="model.submitTime" style="width: 100%"/>-->
<a-date-picker showTime valueFormat="YYYY-MM-DD HH:mm:ss" v-model="model.submitTime" style="width: 100%" /> <a-date-picker showTime valueFormat="YYYY-MM-DD HH:mm:ss" v-model="model.submitTime" style="width: 100%"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -181,13 +193,13 @@
<script> <script>
import store from '@/store' import store from '@/store'
import { httpAction, getAction } from '@api/manage' import {httpAction, getAction} from '@api/manage'
import { validateDuplicateValue } from '@/utils/util' import {validateDuplicateValue} from '@/utils/util'
import JVxeDateCell from "@comp/jeecg/JVxeTable/components/cells/JVxeDateCell"; import JVxeDateCell from "@comp/jeecg/JVxeTable/components/cells/JVxeDateCell";
import JMultiSelectTag from "@/components/dict/JMultiSelectTag" import JMultiSelectTag from "@/components/dict/JMultiSelectTag"
import TaskModal from "@views/task/modules/TaskModal.vue"; import TaskModal from "@views/task/modules/TaskModal.vue";
import { JeecgListMixin } from '@/mixins/JeecgListMixin' import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import { mixinDevice } from "@/utils/mixin"; import {mixinDevice} from "@/utils/mixin";
import modulexModal from "@views/modulex/modules/ModulexModal__Style#Drawer.vue"; import modulexModal from "@views/modulex/modules/ModulexModal__Style#Drawer.vue";
import FunctionxModal from "@views/functionx/modules/FunctionxModal__Style#Drawer.vue"; import FunctionxModal from "@views/functionx/modules/FunctionxModal__Style#Drawer.vue";
import RulexModal from "@views/rulex/modules/RulexModal__Style#Drawer.vue"; import RulexModal from "@views/rulex/modules/RulexModal__Style#Drawer.vue";
@ -237,73 +249,73 @@ export default {
// sm: {span: 16}, // sm: {span: 16},
// }, // },
labelCol: { labelCol: {
xs: { span: 23 }, xs: {span: 23},
sm: { span: 6 }, sm: {span: 6},
}, },
wrapperCol: { wrapperCol: {
xs: { span: 24 }, xs: {span: 24},
sm: { span: 16 }, sm: {span: 16},
}, },
// //
labelCol1: { labelCol1: {
xs: { span: 24 }, xs: {span: 24},
sm: { span: 3 }, sm: {span: 3},
}, },
wrapperCol1: { wrapperCol1: {
xs: { span: 24 }, xs: {span: 24},
sm: { span: 21 }, sm: {span: 21},
}, },
// //
labelCol2: { labelCol2: {
xs: { span: 24 }, xs: {span: 24},
sm: { span: 3 }, sm: {span: 3},
}, },
wrapperCol2: { wrapperCol2: {
xs: { span: 24 }, xs: {span: 24},
sm: { span: 20 }, sm: {span: 20},
}, },
labelCol3: { labelCol3: {
xs: { span: 24 }, xs: {span: 24},
sm: { span: 7 }, sm: {span: 7},
}, },
wrapperCol3: { wrapperCol3: {
xs: { span: 24 }, xs: {span: 24},
sm: { span: 15 }, sm: {span: 15},
}, },
confirmLoading: false, confirmLoading: false,
validatorRules: { validatorRules: {
taskName: [ taskName: [
{ required: true, message: '请输入中文名称!' }, {required: true, message: '请输入中文名称!'},
// {pattern: /^.{2,300}$/, message: '!'}, // {pattern: /^.{2,300}$/, message: '!'},
// {pattern: /^[0-9]{0,100}$/, message: ''} // {pattern: /^[0-9]{0,100}$/, message: ''}
], ],
level: [ level: [
{ required: true, message: '任务层级不能为空!' }, {required: true, message: '任务层级不能为空!'},
], ],
typeId: [ typeId: [
{ required: true, message: '任务类型不能为空!' }, {required: true, message: '任务类型不能为空!'},
], ],
workLevel: [ workLevel: [
{ required: true, message: '任务等级不能为空!' }, {required: true, message: '任务等级不能为空!'},
], ],
workStatus: [ workStatus: [
{ required: true, message: '任务状态不能为空!' }, {required: true, message: '任务状态不能为空!'},
], ],
projectId: [ projectId: [
{ required: true, message: '项目不能为空!' }, {required: true, message: '项目不能为空!'},
], ],
managerUsers: [ managerUsers: [
{ required: true, message: '责任人不能为空!' }, {required: true, message: '责任人不能为空!'},
], ],
expectedDuration: [ expectedDuration: [
{ required: true, message: '请输入预计任务时长!' }, {required: true, message: '请输入预计任务时长!'},
{ pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的时长!' }, {pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的时长!'},
], ],
realDuration: [ realDuration: [
{ required: false, message: '请输入实际任务时长!' }, {required: false, message: '请输入实际任务时长!'},
{ pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的时长!' }, {pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的时长!'},
], ],
}, },
url: { url: {
@ -314,8 +326,7 @@ export default {
// queryTaskTypeById: "/taskType/taskType/queryById", // queryTaskTypeById: "/taskType/taskType/queryById",
fillTaskName: "/task/task/fillTaskName", fillTaskName: "/task/task/fillTaskName",
list: "/task/task/list", list: "/task/task/list",
listtasktype: '/taskType/taskType/getTypeMap', listtasktype: '/taskType/taskType/getTypeMap'
expectedDuration: '/task/task/estimateTime'
} }
} }
@ -332,16 +343,6 @@ export default {
this.tasktype() this.tasktype()
}, },
methods: { methods: {
expectedDuration() {
let param = {
startTime: this.model.startTime,
expectedDuration: this.model.expectedDuration,
}
getAction(this.url. expectedDuration, param).then((res) => {
this.model.expectedEndTime=res.result
})
},
tasktype() { tasktype() {
getAction(this.url.listtasktype).then((res) => { getAction(this.url.listtasktype).then((res) => {
const data = res.result; const data = res.result;
@ -352,9 +353,9 @@ export default {
}) })
}) })
}, },
popupCallback(value, row) { popupCallback(value,row){
this.model = Object.assign(this.model, row); this.model = Object.assign(this.model, row);
}, },
handleCheckChange(data, checked, tree) { handleCheckChange(data, checked, tree) {
if (checked) { if (checked) {
this.currentNodeData.id = data.id this.currentNodeData.id = data.id
@ -368,7 +369,7 @@ export default {
} }
, ,
fillTaskName() { fillTaskName() {
this.modulex = "modulex,module_name,id,project_id='" + this.model.projectId + "'"; this.modulex = "modulex,module_name,id,project_id='"+this.model.projectId+"'";
let that = this; let that = this;
let fillTaskName = ""; let fillTaskName = "";
@ -395,8 +396,8 @@ export default {
} }
} }
, ,
fillLevelName() { fillLevelName(){
this.task = "task,task_name,id,level='" + this.model.level + "'"; this.task = "task,task_name,id,level='"+this.model.level+"'";
} }
, ,
handleAdd3: function () { handleAdd3: function () {
@ -410,24 +411,24 @@ export default {
// this.$refs.modalForm1.title = ""; // this.$refs.modalForm1.title = "";
// this.$refs.modalForm1.disableSubmit = false; // this.$refs.modalForm1.disableSubmit = false;
// }, // },
handleAdd1(moduleId) { handleAdd1(moduleId){
console.log(moduleId + "22222222222222") console.log(moduleId+"22222222222222")
this.$refs.modalForm1.add1(moduleId) this.$refs.modalForm1.add1(moduleId)
this.$refs.modalForm1.title = "新增"; this.$refs.modalForm1.title = "新增";
this.$refs.modalForm1.disableSubmit = false; this.$refs.modalForm1.disableSubmit = false;
}, },
handleAdd2: function (functionId, moduleId) { handleAdd2: function (functionId,moduleId) {
this.$refs.modalForm2.add1(functionId, moduleId); this.$refs.modalForm2.add1(functionId,moduleId);
this.$refs.modalForm2.title = "新增"; this.$refs.modalForm2.title = "新增";
this.$refs.modalForm2.disableSubmit = false; this.$refs.modalForm2.disableSubmit = false;
}, },
fillModuleName() { fillModuleName() {
this.functionx = "functionx,function_name,id,module_id='" + this.model.moduleId + "'"; this.functionx = "functionx,function_name,id,module_id='"+this.model.moduleId+"'";
}, },
fillFunctionName() { fillFunctionName(){
this.rulex = "rulex,rule_no,id,function_id='" + this.model.functionId + "'"; this.rulex = "rulex,rule_no,id,function_id='"+this.model.functionId+"'";
}, },
// //
getProjectNum() { getProjectNum() {
const projectTime = new Date() // const projectTime = new Date() //
const Year = projectTime.getFullYear() // IE. const Year = projectTime.getFullYear() // IE.
@ -498,18 +499,17 @@ export default {
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.a { .a{
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-wrap: wrap; flex-wrap:wrap;
align-items: baseline; align-items: baseline;
} }
.B{
.B {
width: 10%; width: 10%;
} }
::v-deep .ant-radio-group{
::v-deep .ant-radio-group {
width: 85%; width: 85%;
} }
</style> </style>

@ -453,10 +453,7 @@ public class TaskController extends JeecgController<Task, ITaskService> {
workTime += endTime.getTime() - date3.getTime(); workTime += endTime.getTime() - date3.getTime();
return workTime; return workTime;
}else { }else {
//时间跨度没有超过两天 //时间跨度没有超过两天
if (startTime.compareTo(date4) >= 0)
return workTime; //任务是下午下班之后发布的,且是下班之后提交的,没有多余工作时间
if (startTime.compareTo(date1) <= 0) if (startTime.compareTo(date1) <= 0)
startTime = date1; //发布任务在8点之前 startTime = date1; //发布任务在8点之前
if (startTime.compareTo(date2) <= 0){ if (startTime.compareTo(date2) <= 0){
@ -533,11 +530,6 @@ public class TaskController extends JeecgController<Task, ITaskService> {
long tempTime = 0; long tempTime = 0;
if (startTime.compareTo(date1) <= 0) if (startTime.compareTo(date1) <= 0)
startTime = date1; //任务发布在8点半之前,修正时间 startTime = date1; //任务发布在8点半之前,修正时间
if (startTime.compareTo(date4) >= 0){
startTime = date1; //任务发布在晚上下班后,修正到第二天早上上班时间
offset ++;
}
if (startTime.compareTo(date2) < 0){ if (startTime.compareTo(date2) < 0){
//上午发布任务 //上午发布任务
tempTime = date2.getTime() - startTime.getTime(); tempTime = date2.getTime() - startTime.getTime();
@ -555,8 +547,6 @@ public class TaskController extends JeecgController<Task, ITaskService> {
tempTime = date4.getTime() - startTime.getTime(); tempTime = date4.getTime() - startTime.getTime();
if (tempTime >= millisecond) if (tempTime >= millisecond)
return new Date(startTime.getTime() + millisecond + DAYTIME*offset); return new Date(startTime.getTime() + millisecond + DAYTIME*offset);
else
millisecond -= tempTime;
} }
//时间修正,天数偏移量加1,到这里有两中情况,1、白天工作时间不足抵消 2、下午6点之后发布任务 //时间修正,天数偏移量加1,到这里有两中情况,1、白天工作时间不足抵消 2、下午6点之后发布任务
offset ++; offset ++;
@ -567,7 +557,6 @@ public class TaskController extends JeecgController<Task, ITaskService> {
return new Date(startTime.getTime() + millisecond + DAYTIME*offset); return new Date(startTime.getTime() + millisecond + DAYTIME*offset);
//上午偏移不足,下午一定够,因为不会跨两天 //上午偏移不足,下午一定够,因为不会跨两天
millisecond -= tempTime; millisecond -= tempTime;
startTime = date3;
return new Date(startTime.getTime() + millisecond + DAYTIME*offset); return new Date(startTime.getTime() + millisecond + DAYTIME*offset);
} }

Loading…
Cancel
Save