| @@ -26,3 +26,39 @@ export function managerUndistribTaskList(params) { | |||
| params: params, | |||
| }) | |||
| } | |||
| // 分配任务 | |||
| export function distribTask(data) { | |||
| return request({ | |||
| url: '/manager/task/distrib', | |||
| method: 'post', | |||
| data: data, | |||
| }) | |||
| } | |||
| // 全部任务 | |||
| export function managerProcessingTaskList(params) { | |||
| return request({ | |||
| url: '/manager/task/processingTaskList', | |||
| method: 'get', | |||
| params: params, | |||
| }) | |||
| } | |||
| // 区总览(处理中) | |||
| export function managerCountyProcessingTaskSummary(params) { | |||
| return request({ | |||
| url: '/manager/task/countyProcessingTaskSummary', | |||
| method: 'get', | |||
| params: params, | |||
| }) | |||
| } | |||
| // 撤销任务 | |||
| export function revokeTask(data) { | |||
| return request({ | |||
| url: '/manager/task/revoke', | |||
| method: 'post', | |||
| data: data, | |||
| }) | |||
| } | |||
| @@ -0,0 +1,10 @@ | |||
| import request from '@/utils/request' | |||
| // 任务用户列表 | |||
| export function taskUserList(params) { | |||
| return request({ | |||
| url: '/task/user/userList', | |||
| method: 'get', | |||
| params: params, | |||
| }) | |||
| } | |||
| @@ -70,7 +70,7 @@ | |||
| </el-col> | |||
| <el-col :span="2">记账:{{task.voucherCount}}</el-col> | |||
| <el-col :span="2">合同:{{task.contracCount}}</el-col> | |||
| <el-col :span="2">其他:{{task.allCount - task.voucherCount - task.contracCount}}</el-col> | |||
| <el-col :span="2">其他:{{task.otherCount}}</el-col> | |||
| <el-col :span="9" style="text-align: right"><el-button type="primary" size="mini" @click="gotoRemoteSite(task)">进入账套</el-button></el-col> | |||
| </el-row> | |||
| </div> | |||
| @@ -78,7 +78,7 @@ | |||
| </el-table-column> | |||
| <el-table-column prop="orgName" label="村" show-overflow-tooltip /> | |||
| <el-table-column prop="" label="合作社" show-overflow-tooltip /> | |||
| <el-table-column prop="num" label="合作社" show-overflow-tooltip /> | |||
| <el-table-column label="处理进度" show-overflow-tooltip > | |||
| <template slot-scope="scope"> | |||
| {{scope.row.numProcessFinish}}/{{scope.row.num}} | |||
| @@ -98,7 +98,7 @@ | |||
| <el-table-column prop="distriDate" label="下发日期" show-overflow-tooltip /> | |||
| <el-table-column prop="endAt" label="截止日期" show-overflow-tooltip /> | |||
| <el-table-column prop="handleDate" label="记账完成日期" show-overflow-tooltip /> | |||
| <el-table-column prop="value8" label="是否审批完成" show-overflow-tooltip > | |||
| <el-table-column label="是否审批完成" show-overflow-tooltip > | |||
| <template slot-scope="scope"> | |||
| <p class="backButton" v-if="!scope.row.approvalFinish">未完成</p> | |||
| <p class="backButton2" v-if="scope.row.approvalFinish">已完成</p> | |||
| @@ -6,12 +6,12 @@ | |||
| <el-dropdown trigger="click" placement="bottom-start"> | |||
| <div class="select_address el-dropdown-link"> | |||
| <span class="sanjiao-right"></span> | |||
| <p>大足区</p> | |||
| <p>{{cityName}}</p> | |||
| </div> | |||
| <el-dropdown-menu slot="dropdown" style="width: 8vw;text-align: center;"> | |||
| <el-dropdown-item v-for="(item,index) in 5"> | |||
| <div class="selected"> | |||
| <p>张家镇</p> | |||
| <el-dropdown-item v-for="(item,index) in deptOptions" :command="item.orgCode"> | |||
| <div class="selected" @click="chooseCity(item.orgCode)"> | |||
| <p>{{item.deptName}}</p> | |||
| </div> | |||
| </el-dropdown-item> | |||
| </el-dropdown-menu> | |||
| @@ -20,21 +20,21 @@ | |||
| <el-dropdown trigger="click" placement="bottom-start"> | |||
| <div class="select_address el-dropdown-link"> | |||
| <span class="sanjiao-right"></span> | |||
| <p>张家镇</p> | |||
| <p>{{townName}}</p> | |||
| </div> | |||
| <el-dropdown-menu slot="dropdown" style="width: 8vw;text-align: center;"> | |||
| <el-dropdown-item v-for="(item,index) in 5"> | |||
| <div class="selected"> | |||
| <p>张家镇</p> | |||
| <el-dropdown-item v-for="(item,index) in townList" :command="item.orgCode"> | |||
| <div class="selected" @click="chooseTown(item.orgCode)"> | |||
| <p>{{item.deptName}}</p> | |||
| </div> | |||
| </el-dropdown-item> | |||
| </el-dropdown-menu> | |||
| </el-dropdown> | |||
| <p class="todo_num">剩余镇:<span>19</span>个</p> | |||
| <p class="todo_num1">剩余村庄:<span>19</span>个</p> | |||
| <p class="todo_num1">剩余合作社:<span>19</span>个</p> | |||
| <p class="todo_num2">任务异常数:<span>1</span>个</p> | |||
| <p class="todo_num">剩余镇:<span>{{ countySummary.numTown }}</span>个</p> | |||
| <p class="todo_num1">剩余村庄:<span>{{ countySummary.numVillage }}</span>个</p> | |||
| <p class="todo_num1">剩余合作社:<span>{{ countySummary.numBook }}</span>个</p> | |||
| <p class="todo_num2">任务异常数:<span>{{ countySummary.abnormalCount }}</span>个</p> | |||
| </div> | |||
| @@ -42,44 +42,61 @@ | |||
| <div class="left_main"> | |||
| <el-collapse accordion> | |||
| <el-collapse-item v-for="(item,index) in 5" :key="index"> | |||
| <el-collapse-item v-for="(item,index) in list" :key="index"> | |||
| <template slot="title"> | |||
| <div class="left_main_tt"> | |||
| <p>东沙镇</p> | |||
| <div class="tt_label"> | |||
| <p>异常:1</p> | |||
| <p>剩余村庄:20</p> | |||
| <p>剩余合作社:20</p> | |||
| <p>异常:{{item.numExcept}}</p> | |||
| <p>剩余村庄:{{item.numVillage}}</p> | |||
| <p>剩余合作社:{{item.num}}</p> | |||
| </div> | |||
| </div> | |||
| </template> | |||
| <el-table :data="tableData" style="width: 100%;" :default-sort = "{prop: 'date', order: 'descending'}"> | |||
| <el-table :data="item.villageList" style="width: 100%;"> | |||
| <el-table-column type="expand"> | |||
| <template slot-scope="props"> | |||
| <div class="openTable"> | |||
| <el-row v-for="(item,index) in 5" :key="index"> | |||
| <el-col span="9">康师傅合作社</el-col> | |||
| <el-col span="2">记账:3</el-col> | |||
| <el-col span="2">合同:3</el-col> | |||
| <el-col span="2">其他:3</el-col> | |||
| <el-col span="9" style="text-align: right"><el-button type="primary" size="mini">进入账套</el-button></el-col> | |||
| <el-row v-for="(task,index) in props.row.taskList" :key="index"> | |||
| <el-col :span="9"> | |||
| <div class="tab_main"> | |||
| {{task.bookName}} | |||
| <span class="tab_red" v-if="task.abnormalCount > 0">异常:{{task.abnormalCount}}</span> | |||
| </div> | |||
| </el-col> | |||
| <el-col :span="2">记账:{{task.voucherCount}}</el-col> | |||
| <el-col :span="2">合同:{{task.contracCount}}</el-col> | |||
| <el-col :span="2">其他:{{task.otherCount}}</el-col> | |||
| <el-col :span="9" style="text-align: right"><el-button type="primary" size="mini" @click="gotoRemoteSite(task)">进入账套</el-button></el-col> | |||
| </el-row> | |||
| </div> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column prop="value1" label="村" show-overflow-tooltip /> | |||
| <el-table-column prop="value2" label="合作社" show-overflow-tooltip /> | |||
| <el-table-column prop="value3" label="处理进度" show-overflow-tooltip /> | |||
| <el-table-column prop="value4" label="异常任务" show-overflow-tooltip /> | |||
| <el-table-column prop="value5" label="任务进度" show-overflow-tooltip /> | |||
| <el-table-column prop="value6" label="会计" show-overflow-tooltip /> | |||
| <el-table-column prop="value7" label="下发日期" show-overflow-tooltip /> | |||
| <el-table-column prop="value7" label="截至日期" show-overflow-tooltip /> | |||
| <el-table-column prop="value8" label="操作" show-overflow-tooltip > | |||
| <el-table-column prop="orgName" label="村" show-overflow-tooltip /> | |||
| <el-table-column prop="num" label="合作社" show-overflow-tooltip /> | |||
| <el-table-column label="处理进度" show-overflow-tooltip> | |||
| <template slot-scope="scope"> | |||
| <p class="backButton">撤回</p> | |||
| {{scope.row.numProcessFinish}}/{{scope.row.num}} | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column prop="numExcept" label="异常任务" show-overflow-tooltip > | |||
| <template slot-scope="scope"> | |||
| {{scope.row.numExcept || '无'}} | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column prop="value5" label="任务进度" show-overflow-tooltip > | |||
| <template slot-scope="scope"> | |||
| {{scope.row.finishCount}}/{{scope.row.allCount}} | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column prop="handleNick" label="会计" show-overflow-tooltip /> | |||
| <el-table-column prop="distriDate" label="下发日期" show-overflow-tooltip /> | |||
| <el-table-column prop="endAt" label="截至日期" show-overflow-tooltip /> | |||
| <el-table-column label="操作" show-overflow-tooltip > | |||
| <template slot-scope="scope"> | |||
| <p class="backButton" @click="revokeVillageTask(scope.row)">撤回</p> | |||
| </template> | |||
| </el-table-column> | |||
| @@ -89,31 +106,7 @@ | |||
| </div> | |||
| <div class="right_main"> | |||
| <div class="title"> | |||
| <i></i> | |||
| <p>任务日期</p> | |||
| </div> | |||
| <div class="time_main"> | |||
| <span class="sanjiao-top" @click="addDate"></span> | |||
| <p @click = "selectionRange">{{year}}</p> | |||
| <el-date-picker | |||
| v-model="year" | |||
| type="year" | |||
| class="pickerTime" | |||
| ref = "datePicker" | |||
| value-format="yyyy" | |||
| placeholder="选择年"> | |||
| </el-date-picker> | |||
| <span class="sanjiao-bottom" @click="reduceDate"></span> | |||
| </div> | |||
| <div class="month_main"> | |||
| <p v-for="(item,index) in 12" :class="{'active':index==3}">{{index+1}}月<i v-if="index==3"></i></p> | |||
| </div> | |||
| </div> | |||
| <RightYearMonthSelector class="right_main" :year.sync="parms.orderYear" :month.sync="parms.orderMonth" @dateChanged="chooseMonth"/> | |||
| </div> | |||
| @@ -122,71 +115,116 @@ | |||
| </template> | |||
| <script> | |||
| import RightYearMonthSelector from "@/components/framework/RightYearMonthSelector.vue"; | |||
| import {date_format} from "@/utils/date"; | |||
| import {cityTree} from "@/api/misc/misc_dept"; | |||
| import {ENV} from "@/utils/env"; | |||
| import {managerProcessingTaskList, managerCountyProcessingTaskSummary, revokeTask} from "@/api/agentcenter/task"; | |||
| export default { | |||
| name: "processing", | |||
| components: {RightYearMonthSelector}, | |||
| data() { | |||
| return { | |||
| tableData: [{ | |||
| value1: '当当村', | |||
| value2: '玩玩玩玩玩玩玩玩合作社玩玩玩玩玩玩玩玩合作社', | |||
| value3: '8', | |||
| value4: '5', | |||
| value5: '5', | |||
| value6: '18', | |||
| value7: '2023.03.05', | |||
| value8: '2023.03.06', | |||
| value9: '111' | |||
| }, { | |||
| value1: '当当村', | |||
| value2: '玩玩玩玩玩玩玩玩合作社', | |||
| value3: '8', | |||
| value4: '5', | |||
| value5: '5', | |||
| value6: '18', | |||
| value7: '2023.03.05', | |||
| value8: '2023.03.06', | |||
| value9: '111' | |||
| }, { | |||
| value1: '当当村', | |||
| value2: '玩玩玩玩玩玩玩玩合作社', | |||
| value3: '8', | |||
| value4: '5', | |||
| value5: '5', | |||
| value6: '18', | |||
| value7: '2023.03.05', | |||
| value8: '2023.03.06', | |||
| value9: '111' | |||
| }, { | |||
| value1: '当当村', | |||
| value2: '玩玩玩玩玩玩玩玩合作社', | |||
| value3: '8', | |||
| value4: '5', | |||
| value5: '5', | |||
| value6: '18', | |||
| value7: '2023.03.05', | |||
| value8: '2023.03.06', | |||
| value9: '111' | |||
| }], | |||
| year:'2023', | |||
| deptOptions: [], | |||
| list: [], | |||
| total: 0, | |||
| parms: { | |||
| countyCode: null, | |||
| townCode: null, | |||
| orderYear: date_format('%Y'), | |||
| orderMonth: date_format('%m'), | |||
| }, | |||
| countySummary: { | |||
| numTown: 0, | |||
| numBook: 0, | |||
| abnormalCount: 0, | |||
| numVillage: 0, | |||
| } | |||
| } | |||
| }, | |||
| created() { | |||
| this.getDeptTree(); | |||
| }, | |||
| methods:{ | |||
| addDate(){ | |||
| this.year = Number(this.year) + 1 ; | |||
| getDeptTree() { | |||
| cityTree({rootId: ENV.UserDeptId()}).then((resp) => { | |||
| this.deptOptions = resp.data; | |||
| if(this.deptOptions.length) | |||
| { | |||
| this.parms.countyCode = this.deptOptions[0].orgCode; | |||
| this.getSummary(); | |||
| this.getTaskList(); | |||
| } | |||
| }); | |||
| }, | |||
| getTaskList() { | |||
| if(!this.parms.countyCode || !this.parms.orderYear || !this.parms.orderMonth) | |||
| return; | |||
| managerProcessingTaskList(this.parms).then((resp) => { | |||
| this.list = resp.rows; | |||
| this.total = resp.total; | |||
| }) | |||
| }, | |||
| reduceDate(){ | |||
| this.year = Number(this.year) - 1 ; | |||
| chooseCity(cmd) { | |||
| this.parms.countyCode = cmd; | |||
| this.parms.townCode = null; | |||
| this.getTaskList(); | |||
| this.getSummary(); | |||
| }, | |||
| selectionRange(){ | |||
| this.$refs.datePicker.focus(); | |||
| chooseTown(cmd) { | |||
| this.parms.townCode = cmd; | |||
| this.getTaskList(); | |||
| }, | |||
| chooseMonth(year, month) { | |||
| this.getSummary(); | |||
| this.getTaskList(); | |||
| }, | |||
| gotoRemoteSite(task) { | |||
| window.open(`/api/open/book/${task.orgCode}/${task.bookId}`, '_blank'); | |||
| }, | |||
| getSummary() { | |||
| if(!this.parms.countyCode || !this.parms.orderYear || !this.parms.orderMonth) | |||
| return; | |||
| managerCountyProcessingTaskSummary(this.parms).then((resp) => { | |||
| this.countySummary = resp.data; | |||
| }) | |||
| }, | |||
| revokeVillageTask(row) { | |||
| revokeTask({ | |||
| orderYear: row.orderYear, | |||
| orderMonth: row.orderMonth, | |||
| orgCode: row.orgCode, | |||
| }).then((resp) => { | |||
| this.$message.success('撤回成功'); | |||
| this.getSummary(); | |||
| this.getTaskList(); | |||
| }); | |||
| }, | |||
| }, | |||
| mounted(){ | |||
| } | |||
| }, | |||
| computed: { | |||
| cityName() { | |||
| if(!this.deptOptions.length) | |||
| return ''; | |||
| let dept = this.deptOptions.find((x) => x.orgCode === this.parms.countyCode); | |||
| return dept ? dept.deptName : ''; | |||
| }, | |||
| townList() { | |||
| if(!this.deptOptions.length) | |||
| return []; | |||
| let dept = this.deptOptions.find((x) => x.orgCode === this.parms.countyCode); | |||
| return dept ? dept.children || [] : []; | |||
| }, | |||
| townName() { | |||
| if(!this.townList.length) | |||
| return ''; | |||
| let dept = this.townList.find((x) => x.orgCode === this.parms.townCode); | |||
| return dept ? dept.deptName : ''; | |||
| }, | |||
| }, | |||
| } | |||
| </script> | |||
| @@ -291,6 +329,25 @@ export default { | |||
| .el-col{ | |||
| padding: 10px 0; | |||
| } | |||
| .tab_main{ | |||
| display: flex; | |||
| span{ | |||
| color: #ffffff; | |||
| background-color: #acabab; | |||
| padding: 2px 0px; | |||
| width: 4vw; | |||
| display: inline-block; | |||
| border-radius: 7px; | |||
| margin-right: 1vw; | |||
| text-align: center; | |||
| } | |||
| .tab_green{ | |||
| background-color: #209955; | |||
| } | |||
| .tab_red{ | |||
| background-color: #ef0027; | |||
| } | |||
| } | |||
| } | |||
| .header_main{ | |||
| @@ -393,6 +450,7 @@ export default { | |||
| border-bottom: 1px solid #3976ff; | |||
| display: inline-block; | |||
| padding-bottom: 5px; | |||
| cursor: pointer; | |||
| } | |||
| .left_main_tt{ | |||
| flex: 1; | |||
| @@ -40,7 +40,7 @@ | |||
| <div class="main"> | |||
| <div class="left_main"> | |||
| <el-table :data="list" style="width: 100%;" v-if="list.length > 0"> | |||
| <el-table :data="list" style="width: 100%;" v-if="list.length > 0" @expand-change="townExpanded"> | |||
| <el-table-column type="expand"> | |||
| <template slot-scope="props"> | |||
| @@ -59,9 +59,17 @@ | |||
| <el-table-column label="操作"> | |||
| <template slot-scope="scope"> | |||
| <div class="setting"> | |||
| <el-button type="primary" size="mini" icon="el-icon-edit"></el-button> | |||
| <img src="../../assets/images/toBeAllocated_icon_delete.png" alt=""> | |||
| <span class="name">王五</span> | |||
| <el-dropdown trigger="click" v-if="!scope.row.handleUser" @command="(e) => setTaskHandleUser(scope.row, e)"> | |||
| <el-button type="primary" size="mini" icon="el-icon-edit" @click="getVillageTaskUserList(scope.row)"></el-button> | |||
| <el-dropdown-menu slot="dropdown"> | |||
| <el-dropdown-item v-for="(item, index) in villageTaskUserList" :key="index" :command="item">{{item.nickName}} - {{item.num}}</el-dropdown-item> | |||
| </el-dropdown-menu> | |||
| </el-dropdown> | |||
| <template v-else> | |||
| <img src="../../assets/images/toBeAllocated_icon_delete.png" alt="" @click="clearTaskHandleUser(scope.row)"> | |||
| <span class="name">{{scope.row.handleNick}}</span> | |||
| </template> | |||
| </div> | |||
| </template> | |||
| </el-table-column> | |||
| @@ -82,9 +90,19 @@ | |||
| <el-table-column prop="contracCount" label="合同数量" show-overflow-tooltip /> | |||
| <el-table-column prop="otherCount" label="其他" show-overflow-tooltip /> | |||
| <el-table-column prop="allCount" label="任务总数" show-overflow-tooltip /> | |||
| <el-table-column label="操作" show-overflow-tooltip > | |||
| <el-table-column label="操作"> | |||
| <template slot-scope="scope"> | |||
| <el-button type="primary" size="mini" icon="el-icon-edit"></el-button> | |||
| <el-dropdown trigger="click" v-if="!scope.row.expanded"> | |||
| <el-button type="primary" size="mini" icon="el-icon-edit" @click="getTownTaskUserList(scope.row)"></el-button> | |||
| <el-dropdown-menu slot="dropdown"> | |||
| <el-dropdown-item v-for="(item, index) in townTaskUserList" :key="index" :command="item">{{item.nickName}} - {{item.num}}</el-dropdown-item> | |||
| </el-dropdown-menu> | |||
| </el-dropdown> | |||
| <template v-else> | |||
| <el-button type="danger" size="mini" icon="el-icon-close" @click="resetTaskUser(scope.row)"></el-button> | |||
| <el-button type="success" size="mini" icon="el-icon-upload2" @click="setupTaskUser(scope.row)"></el-button> | |||
| </template> | |||
| </template> | |||
| </el-table-column> | |||
| @@ -111,15 +129,19 @@ | |||
| <el-col :span="8" align="center">未完成</el-col> | |||
| <el-col :span="8" align="center">任务期限</el-col> | |||
| </el-row> | |||
| <el-row v-for="(item,index) in 10"> | |||
| <el-col :span="8">张三</el-col> | |||
| <el-col :span="8">19 <span class="num">1</span><span class="num2">10</span></el-col> | |||
| <el-row v-for="(item,index) in taskUserList"> | |||
| <el-col :span="8">{{item.nickName}}</el-col> | |||
| <el-col :span="8">{{item.num}} | |||
| <template v-if="item.addNum > 0"> | |||
| <span class="num">{{item.addNum}}</span><span class="num2">{{item.num + item.addNum}}</span> | |||
| </template> | |||
| </el-col> | |||
| <el-col :span="8" align="center"> | |||
| <span class="no_yes">未选中</span> | |||
| <div class="num_input"> | |||
| <span @click="reduceNum">-</span> | |||
| <p>{{num}}</p> | |||
| <span @click="addNum">+</span> | |||
| <span class="no_yes" v-if="item.addNum === 0">未选中</span> | |||
| <div class="num_input" v-else> | |||
| <span @click="reduceNum(item)">-</span> | |||
| <p>{{item.days}}</p> | |||
| <span @click="addNum(item)">+</span> | |||
| </div> | |||
| </el-col> | |||
| </el-row> | |||
| @@ -139,10 +161,10 @@ | |||
| import RightYearMonthHorizontalSelector from "@/components/framework/RightYearMonthHorizontalSelector.vue"; | |||
| import {cityTree} from "@/api/misc/misc_dept"; | |||
| import {ENV} from "@/utils/env"; | |||
| import {accountingTodoTaskList} from "@/api/agentcenter/accounting_task"; | |||
| import RightYearMonthSelector from "@/components/framework/RightYearMonthSelector.vue"; | |||
| import {date_format} from "@/utils/date"; | |||
| import {managerUndistribTaskList} from "@/api/agentcenter/task"; | |||
| import {distribTask, managerUndistribTaskList} from "@/api/agentcenter/task"; | |||
| import {taskUserList} from "@/api/agentcenter/task_user"; | |||
| export default { | |||
| name: "processed", | |||
| @@ -161,7 +183,9 @@ | |||
| numBook: 0, | |||
| numVillage: 0, | |||
| allCount: 0, | |||
| num:0 | |||
| villageTaskUserList: [], | |||
| townTaskUserList: [], | |||
| taskUserList: [], | |||
| } | |||
| }, | |||
| created() { | |||
| @@ -172,29 +196,38 @@ | |||
| cityTree({rootId: ENV.UserDeptId()}).then((resp) => { | |||
| this.deptOptions = resp.data; | |||
| if(this.deptOptions.length) | |||
| { | |||
| this.parms.countyCode = this.deptOptions[0].orgCode; | |||
| this.getTaskUserList({orgCode: this.parms.countyCode}); | |||
| this.getTaskList(); | |||
| } | |||
| }); | |||
| }, | |||
| chooseCity(cmd) { | |||
| this.parms.countyCode = cmd; | |||
| this.parms.townCode = null; | |||
| this.getTaskList(); | |||
| this.getTaskUserList({orgCode: this.parms.countyCode}); | |||
| }, | |||
| chooseTown(cmd) { | |||
| this.parms.townCode = cmd; | |||
| this.getTaskList(); | |||
| this.getVillageTaskUserList({orgCode: this.parms.townCode}); | |||
| }, | |||
| addNum(){ | |||
| this.num = Number(this.num) + 1 ; | |||
| addNum(item){ | |||
| item.days++; | |||
| }, | |||
| reduceNum(){ | |||
| if(this.num==0){return;} | |||
| this.num = Number(this.num) - 1 ; | |||
| reduceNum(item){ | |||
| if(item.days <= 0){return;} | |||
| item.days--; | |||
| }, | |||
| getTaskList() { | |||
| if(!this.parms.countyCode || !this.parms.orderYear || !this.parms.orderMonth) | |||
| return; | |||
| managerUndistribTaskList(this.parms).then((resp) => { | |||
| resp.rows.forEach((x) => { | |||
| x.expanded = false; | |||
| }) | |||
| this.list = resp.rows; | |||
| this.total = resp.total; | |||
| this.numBook = resp.numBook; | |||
| @@ -205,6 +238,99 @@ | |||
| chooseMonth(year, month) { | |||
| this.getTaskList(); | |||
| }, | |||
| getVillageTaskUserList(row) { | |||
| this.villageTaskUserList = []; | |||
| taskUserList({ | |||
| orgCode: row.orgCode, | |||
| }).then((resp) => { | |||
| this.villageTaskUserList = resp.rows; | |||
| }) | |||
| }, | |||
| getTownTaskUserList(row) { | |||
| this.villageTaskUserList = []; | |||
| taskUserList({ | |||
| orgCode: row.townCode, | |||
| }).then((resp) => { | |||
| this.townTaskUserList = resp.rows; | |||
| }) | |||
| }, | |||
| getTaskUserList() { | |||
| if(!this.parms.countyCode) | |||
| return; | |||
| this.taskUserList = []; | |||
| taskUserList({ | |||
| orgCode: this.parms.countyCode, | |||
| }).then((resp) => { | |||
| resp.rows.forEach((x) => { | |||
| x.days = 0; | |||
| x.addNum = 0; | |||
| }); | |||
| this.taskUserList = resp.rows; | |||
| }) | |||
| }, | |||
| setTaskHandleUser(row, user) { | |||
| this.$set(row, 'handleUser', user.userName); | |||
| this.$set(row, 'handleNick', user.nickName); | |||
| let globalUser = this.taskUserList.find((x) => x.userName === user.userName); | |||
| globalUser.addNum++; | |||
| }, | |||
| clearTaskHandleUser(row) { | |||
| let globalUser = this.taskUserList.find((x) => x.userName === row.handleUser); | |||
| globalUser.addNum--; | |||
| this.$set(row, 'handleUser', ''); | |||
| this.$set(row, 'handleNick', ''); | |||
| if(!globalUser.addNum) | |||
| globalUser.days = 0; | |||
| }, | |||
| townExpanded(row, expandedRows) { | |||
| let expand = expandedRows.includes(row); | |||
| this.$set(row, 'expanded', expand); | |||
| }, | |||
| resetTaskUser(row) { | |||
| row.villageList.forEach((x) => { | |||
| this.$set(x, 'handleUser', ''); | |||
| this.$set(x, 'handleNick', ''); | |||
| }); | |||
| this.taskUserList.forEach((x) => { | |||
| x.addNum = 0; | |||
| x.days = 0; | |||
| }) | |||
| }, | |||
| setupTaskUser(row) { | |||
| let arr = []; | |||
| for(let v of row.villageList) | |||
| { | |||
| if(!v.handleUser) | |||
| continue; | |||
| let globalUser = this.taskUserList.find((x) => x.userName === v.handleUser); | |||
| if(!globalUser.days) | |||
| { | |||
| this.$message.error('请设置任务期限'); | |||
| return; | |||
| } | |||
| let item = { | |||
| handleUser: v.handleUser, | |||
| orgCode: v.orgCode, | |||
| days: globalUser.days, | |||
| }; | |||
| arr.push(item); | |||
| } | |||
| if(!arr.length) | |||
| { | |||
| this.$message.error('请设置记账人'); | |||
| return; | |||
| } | |||
| let data = { | |||
| orderYear: this.parms.orderYear, | |||
| orderMonth: this.parms.orderMonth, | |||
| items: arr, | |||
| }; | |||
| distribTask(data).then((resp) => { | |||
| this.$message.success('分配成功'); | |||
| this.getTaskUserList({orgCode: this.parms.countyCode}); | |||
| this.getTaskList(); | |||
| }); | |||
| }, | |||
| }, | |||
| mounted(){ | |||
| @@ -321,7 +447,6 @@ | |||
| .no_yes{ | |||
| color: #9a9a9a; | |||
| display: none; | |||
| } | |||
| .num_input{ | |||