|
@@ -9,13 +9,13 @@
|
|
|
<div>
|
|
|
<label>任务类型:</label>
|
|
|
<el-select v-model="taskType">
|
|
|
- <el-option label="对比任务" value="2"></el-option>
|
|
|
- <el-option label="初筛任务" value="3"></el-option>
|
|
|
+ <el-option label="对比任务" value="3"></el-option>
|
|
|
+ <el-option label="标引任务" value="0"></el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<!-- 平均分配 -->
|
|
|
<div>
|
|
|
- <el-button type="primary" size="small" style="height:40px" @click="handleConfirm">平均分配</el-button>
|
|
|
+ <!-- <el-button type="primary" size="small" style="height:40px" @click="handleConfirm">平均分配</el-button> -->
|
|
|
<el-button @click="getPerson">添加人员</el-button>
|
|
|
<el-button @click="finish" v-if="params">完成</el-button>
|
|
|
</div>
|
|
@@ -67,7 +67,8 @@
|
|
|
<!-- 选择专利 -->
|
|
|
<checkPatent ref="checkPatent" @checkPatentList="checkPatentList"></checkPatent>
|
|
|
|
|
|
- <examine ref="examine" @save="handleSave" :title="'添加分配任务'" :handlerLabel="'处理人'" :handPlaceholder="'请输入处理人'"></examine>
|
|
|
+ <examine ref="examine" @save="handleSave" :title="'添加分配任务'" :isShow="false">
|
|
|
+ </examine>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -84,26 +85,11 @@ export default {
|
|
|
},
|
|
|
props: ['projectId',],
|
|
|
data() {
|
|
|
- const isTime = (rule, value, callback) => {
|
|
|
- if (this.formEndTime) {
|
|
|
- this.changeEndTime = Date.parse(new Date)
|
|
|
- }
|
|
|
- let b = Date.parse(value)
|
|
|
- if (value) {
|
|
|
- if (b < this.changeEndTime) {
|
|
|
- callback(new Error('禁止选择现在及以前时间,请重新选择'))
|
|
|
- } else {
|
|
|
- callback()
|
|
|
- }
|
|
|
- } else {
|
|
|
- callback(new Error('请选择时间'))
|
|
|
- }
|
|
|
- }
|
|
|
return {
|
|
|
totalNumber: 0,//总件数
|
|
|
leaveNumber: 0,//剩余件数
|
|
|
// 任务类型
|
|
|
- taskType: "2",
|
|
|
+ taskType: "3",
|
|
|
// 表格数据源
|
|
|
tableData: [],
|
|
|
// 分页信息
|
|
@@ -118,9 +104,9 @@ export default {
|
|
|
// 倒计时初始值
|
|
|
countdown: 3,
|
|
|
//当前数据
|
|
|
- row:{},
|
|
|
+ row: {},
|
|
|
//控制table视图显示
|
|
|
- showTable:true,
|
|
|
+ showTable: true,
|
|
|
// 完成???
|
|
|
params: {},
|
|
|
|
|
@@ -130,7 +116,11 @@ export default {
|
|
|
...mapGetters(['webSocket', 'userinfo']),
|
|
|
},
|
|
|
watch: {
|
|
|
-
|
|
|
+ dialogVisible(val) {
|
|
|
+ if (val) {
|
|
|
+ this.out()
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
created() {
|
|
|
|
|
@@ -140,6 +130,18 @@ export default {
|
|
|
this.getUser()
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 倒计时
|
|
|
+ out(){
|
|
|
+ this.timer = setInterval(() => {
|
|
|
+ if (this.countdown == 0) {
|
|
|
+ this.$router.replace("/AllReport");
|
|
|
+ clearInterval(this.timer);
|
|
|
+ this.dialogVisible = false
|
|
|
+ } else {
|
|
|
+ this.countdown--;
|
|
|
+ }
|
|
|
+ }, 1000);
|
|
|
+ },
|
|
|
//获取专利列表
|
|
|
async getList() {
|
|
|
let params = {
|
|
@@ -185,8 +187,8 @@ export default {
|
|
|
// 取消
|
|
|
cancelChoose(row) {
|
|
|
row.patentNos = []
|
|
|
- this.$set(row,'patentNum', 0)
|
|
|
- row.isChoose =false
|
|
|
+ this.$set(row, 'patentNum', 0)
|
|
|
+ row.isChoose = false
|
|
|
this.handleConfirm()
|
|
|
},
|
|
|
// 选择专利
|
|
@@ -196,17 +198,17 @@ export default {
|
|
|
},
|
|
|
// 子组件选择的专利号数组数据
|
|
|
checkPatentList(val) {
|
|
|
- if(val.length>0){
|
|
|
+ if (val.length > 0) {
|
|
|
this.row.isChoose = true
|
|
|
this.row.patentNos = val
|
|
|
- this.$set(this.row,'patentNum', val.length)
|
|
|
+ this.$set(this.row, 'patentNum', val.length)
|
|
|
this.handleConfirm()
|
|
|
}
|
|
|
},
|
|
|
-
|
|
|
+
|
|
|
//编辑
|
|
|
edit(row) {
|
|
|
- this.$set(row,'patentNum2',row.patentNum)
|
|
|
+ this.$set(row, 'patentNum2', row.patentNum)
|
|
|
row.vVisible = !row.vVisible
|
|
|
// this.tableData = JSON.parse(JSON.stringify(this.tableData))
|
|
|
},
|
|
@@ -221,7 +223,7 @@ export default {
|
|
|
}
|
|
|
row.vVisible = !row.vVisible
|
|
|
// row.patentNum = row.patentNum2
|
|
|
- this.$set(row,'patentNum',row.patentNum2)
|
|
|
+ this.$set(row, 'patentNum', row.patentNum2)
|
|
|
row.isEdit = true
|
|
|
row.patentNos = []
|
|
|
this.handleConfirm()
|
|
@@ -229,42 +231,44 @@ export default {
|
|
|
//完成打开弹窗
|
|
|
finish() {
|
|
|
this.$refs.examine.open()
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
+ // 发送任务
|
|
|
handleSave(form) {
|
|
|
let params = {
|
|
|
- taskType: 5,
|
|
|
+ projectId:this.projectId,
|
|
|
+ taskType: this.taskType,
|
|
|
...form,
|
|
|
- stringRequest: '',//检索内容条件
|
|
|
+ stringRequest: {},//检索内容条件
|
|
|
personAssignedDTOList: this.tableData.map(item => {
|
|
|
return {
|
|
|
personId: item.id,
|
|
|
patentNum: item.patentNum,
|
|
|
patentNos: item.patentNos || [],
|
|
|
- }
|
|
|
+ }
|
|
|
}),
|
|
|
}
|
|
|
this.$api.addMarkTask(params).then(res => {
|
|
|
if (res.code == 200) {
|
|
|
this.$message('添加分配任务成功')
|
|
|
this.$refs.examine.handleCloseTask()
|
|
|
- this.dialogVisible=true
|
|
|
+ this.dialogVisible = true
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
|
|
|
// 添加人员
|
|
|
getPerson() {
|
|
|
- var personIds = this.tableData.map(item=>item.id)
|
|
|
+ var personIds = this.tableData.map(item => item.id)
|
|
|
var persons = JSON.parse(JSON.stringify(this.tableData))
|
|
|
- this.$refs.personList.open(personIds,persons)
|
|
|
+ this.$refs.personList.open(personIds, persons)
|
|
|
},
|
|
|
//获取子组件返回的人员信息
|
|
|
getPersonIds({ personIds, persons }) {
|
|
|
if (persons.length > 0) {
|
|
|
persons.forEach(item => {
|
|
|
item.patentNum = 0
|
|
|
- this.$set(item,'vVisible',true)
|
|
|
+ this.$set(item, 'vVisible', true)
|
|
|
if (this.tableData.length > 0) {
|
|
|
let index = this.tableData.findIndex(dataItem => {
|
|
|
return dataItem.id == item.id
|
|
@@ -284,56 +288,56 @@ export default {
|
|
|
|
|
|
// 平均分配
|
|
|
handleConfirm() {
|
|
|
- if(this.tableData.length==0){
|
|
|
+ if (this.tableData.length == 0) {
|
|
|
this.$message.warning('请先选择人员!!!')
|
|
|
return false
|
|
|
}
|
|
|
- var {user,leaveNumber} = this.clearPatentNum()
|
|
|
- if(user.length == 0){
|
|
|
+ var { user, leaveNumber } = this.clearPatentNum()
|
|
|
+ if (user.length == 0) {
|
|
|
this.leaveNumber = leaveNumber
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- var pjNum = parseInt(leaveNumber / user.length)?parseInt(leaveNumber / user.length):0
|
|
|
- if(pjNum!=0){
|
|
|
- user.forEach(item=>{
|
|
|
- this.$set(item,'patentNum',pjNum)
|
|
|
- })
|
|
|
- }
|
|
|
- var leaveNumber2 = leaveNumber - (user.length * pjNum)
|
|
|
- try{
|
|
|
- user.forEach(item=>{
|
|
|
- if(leaveNumber2>0){
|
|
|
- var num = item.patentNum + 1
|
|
|
- this.$set(item,'patentNum',num)
|
|
|
- leaveNumber2--
|
|
|
- }else{
|
|
|
- throw Error();
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- catch{
|
|
|
|
|
|
- }
|
|
|
+ var pjNum = parseInt(leaveNumber / user.length) ? parseInt(leaveNumber / user.length) : 0
|
|
|
+ if (pjNum != 0) {
|
|
|
+ user.forEach(item => {
|
|
|
+ this.$set(item, 'patentNum', pjNum)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ var leaveNumber2 = leaveNumber - (user.length * pjNum)
|
|
|
+ try {
|
|
|
+ user.forEach(item => {
|
|
|
+ if (leaveNumber2 > 0) {
|
|
|
+ var num = item.patentNum + 1
|
|
|
+ this.$set(item, 'patentNum', num)
|
|
|
+ leaveNumber2--
|
|
|
+ } else {
|
|
|
+ throw Error();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ catch {
|
|
|
+
|
|
|
+ }
|
|
|
this.leaveNumber = 0
|
|
|
this.refreshTable()
|
|
|
},
|
|
|
//刷新表格
|
|
|
- refreshTable(){
|
|
|
+ refreshTable() {
|
|
|
this.showTable = false
|
|
|
- this.$nextTick(()=>{
|
|
|
+ this.$nextTick(() => {
|
|
|
this.showTable = true
|
|
|
})
|
|
|
},
|
|
|
//清空人员分配专利数量
|
|
|
- clearPatentNum(){
|
|
|
+ clearPatentNum() {
|
|
|
var user = []
|
|
|
var leaveNumber = this.totalNumber
|
|
|
- this.tableData.forEach(item=>{
|
|
|
- if(!item.isChoose && !item.isEdit){
|
|
|
+ this.tableData.forEach(item => {
|
|
|
+ if (!item.isChoose && !item.isEdit) {
|
|
|
item.patentNum = 0
|
|
|
user.push(item)
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
leaveNumber -= item.patentNum
|
|
|
}
|
|
|
})
|