zhaodengke 1 рік тому
джерело
коміт
e3e80187e3
5 змінених файлів з 231 додано та 172 видалено
  1. +18
    -0
      src/api/agentcenter/accounting_task.js
  2. +27
    -0
      src/api/agentcenter/task.js
  3. +3
    -0
      src/components/framework/TopDeptChooser.vue
  4. +88
    -85
      src/views/abnormal/abnormal.vue
  5. +95
    -87
      src/views/managerAbnormal/managerAbnormal.vue

+ 18
- 0
src/api/agentcenter/accounting_task.js Переглянути файл

@@ -26,3 +26,21 @@ export function finishTask(data) {
data: data,
})
}

// 异常任务
export function accountingAbnormalTaskList(params) {
return request({
url: '/accounting/task/abnormalTaskList',
method: 'get',
params: params,
})
}

// 异常任务统计
export function accountingAbnormalTaskSummary(params) {
return request({
url: '/accounting/task/abnormalTaskSummary',
method: 'get',
params: params,
})
}

+ 27
- 0
src/api/agentcenter/task.js Переглянути файл

@@ -98,3 +98,30 @@ export function auditAllTask(data) {
data: data,
})
}

// 异常任务
export function managerAbnormalTaskList(params) {
return request({
url: '/manager/task/abnormalTaskList',
method: 'get',
params: params,
})
}

// 异常任务统计
export function managerAbnormalTaskSummary(params) {
return request({
url: '/manager/task/abnormalTaskSummary',
method: 'get',
params: params,
})
}

// 异常任务统计
export function removeAbnormalTask(type, id, params) {
return request({
url: `/manager/task/removeAbnormalTask/${type}/${id}`,
method: 'post',
data: params,
})
}

+ 3
- 0
src/components/framework/TopDeptChooser.vue Переглянути файл

@@ -30,6 +30,7 @@
</el-dropdown-menu>
</el-dropdown>

<slot></slot>
</div>

</template>
@@ -100,7 +101,9 @@ export default {
this.$emit('townChanged', this.itownCode, this.icountyCode);
}
if((w & 1) || ((w & 2) && !this.hideTown))
{
this.$emit('dataChanged', this.icountyCode, this.itownCode, w);
}
},
},
watch: {


+ 88
- 85
src/views/abnormal/abnormal.vue Переглянути файл

@@ -3,51 +3,27 @@

<div class="header_main">

<el-dropdown trigger="click" placement="bottom-start">
<div class="select_address el-dropdown-link">
<span class="sanjiao-right"></span>
<p>大足区</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>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>

<el-dropdown trigger="click" placement="bottom-start">
<div class="select_address el-dropdown-link">
<span class="sanjiao-right"></span>
<p>张家镇</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>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>

<el-dropdown trigger="click" placement="bottom-start">
<div class="select_address el-dropdown-link">
<span class="sanjiao-right"></span>
<p>记账</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>
<TopDeptChooser :county-code.sync="parms.countyCode" :town-code.sync="parms.townCode" :root-id="rootId" @dataChanged="chooseDept">
<template>
<el-dropdown trigger="click" placement="bottom-start">
<div class="select_address el-dropdown-link">
<span class="sanjiao-right"></span>
<p>{{typeName}}</p>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>

<p class="todo_num">合同异常:<span>19</span>个</p>
<p class="todo_num2">记录异常:<span>1</span>个</p>
<p class="todo_num3">其他异常:<span>1</span>个</p>
<el-dropdown-menu slot="dropdown" style="width: 8vw;text-align: center;">
<el-dropdown-item v-for="(item,index) in typeOptions">
<div class="selected" @click="chooseType(item.dictValue)">
<p>{{item.dictLabel}}</p>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</TopDeptChooser>

<p class="todo_num">记账异常:<span>{{abnormalSummary.numAbnormalVoucher}}</span>个</p>
<p class="todo_num2">合同异常:<span>{{abnormalSummary.numAbnormalContraction}}</span>个</p>
<p class="todo_num3">其他异常:<span>{{abnormalSummary.numAbnormalOther}}</span>个</p>

</div>

@@ -55,21 +31,21 @@

<div class="left_main">

<div class="left_main_block" v-for="(item,index) in 5" :key="index">
<div class="left_main_block" v-for="(item,index) in list" :key="index">

<p class="left_tt">{{index+1}}.购入芒果52公斤<el-button type="primary" size="mini" icon="el-icon-edit"></el-button></p>
<p class="left_tt">{{index+1}}.{{item.name}}<el-button type="primary" size="mini" icon="el-icon-edit"></el-button></p>

<el-row>
<el-col span="4"><span>经济组织:</span>田娜合作社</el-col>
<el-col span="6"><span>所属地:</span>山东省/威海市/环翠区/羊头镇/张家村</el-col>
<el-col span="6"><span>详细地址:</span>万江路阿巴阿巴阿巴104号楼</el-col>
<el-col span="4"><span>申请人:</span>林萧天</el-col>
<el-col span="4"><span>联系电话:</span>158 0366 7149</el-col>
<el-col :span="4"><span>经济组织:</span>{{item.bookName}}</el-col>
<el-col :span="6"><span>所属地:</span>{{item.region}}</el-col>
<el-col :span="6"><span>详细地址:</span>{{item.address}}</el-col>
<el-col :span="4"><span>申请人:</span>{{item.applyUser}}</el-col>
<el-col :span="4"><span>联系电话:</span>{{item.tel}}</el-col>
</el-row>

<el-row>
<el-col span="4" style="color: #ef0027;"><span>挂起时间:</span>2023.3.10</el-col>
<el-col span="6" style="color: #ef0027;"><span>异常原因:</span>缺少收据</el-col>
<el-col :span="4" style="color: #ef0027;"><span>挂起时间:</span>{{item.orderAt}}</el-col>
<el-col :span="6" style="color: #ef0027;"><span>异常原因:</span>{{item.remark}}</el-col>
</el-row>


@@ -77,31 +53,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>

@@ -110,29 +62,80 @@
</template>

<script>
import TopDeptChooser from "@/components/framework/TopDeptChooser.vue";
import {date_format} from "@/utils/date";
import {ENV} from "@/utils/env";
import RightYearMonthSelector from "@/components/framework/RightYearMonthSelector.vue";
import {accountingAbnormalTaskList, accountingAbnormalTaskSummary} from "@/api/agentcenter/accounting_task";

export default {
name: "todo",
components: {RightYearMonthSelector, TopDeptChooser},
data() {
return {
year:'2023',
list: [],
total: 0,
parms: {
countyCode: null,
townCode: null,
type: 'contraction',
orderYear: date_format('%Y'),
orderMonth: date_format('%m'),
},
abnormalSummary: {
num: 0,
numAbnormalContraction: 0,
numAbnormalVoucher: 0,
numAbnormalOther: 0,
},
rootId: ENV.UserDeptId(),
typeOptions: [
{dictLabel: '合同', dictValue: 'contraction',},
{dictLabel: '记账', dictValue: 'voucher',},
{dictLabel: '其他', dictValue: 'other',},
],
}
},
created() {

},
methods:{
addDate(){
this.year = Number(this.year) + 1 ;
getTaskList() {
if(!this.parms.townCode || !this.parms.orderYear || !this.parms.orderMonth || !this.parms.type)
return;
accountingAbnormalTaskList(this.parms).then((resp) => {
this.list = resp.rows;
this.total = resp.total;
})
},
reduceDate(){
this.year = Number(this.year) - 1 ;
getSummary() {
if(!this.parms.townCode || !this.parms.orderYear || !this.parms.orderMonth)
return;
accountingAbnormalTaskSummary(this.parms).then((resp) => {
this.abnormalSummary = resp.data;
})
},
selectionRange(){
this.$refs.datePicker.focus();
chooseDept(townCode, countyCode) {
this.getTaskList();
this.getSummary();
},
chooseMonth(year, month) {
this.getSummary();
this.getTaskList();
},
chooseType(type) {
this.parms.type = type;
this.getTaskList();
},
},
mounted(){

},
computed: {
typeName() {
let val = this.typeOptions.find((x) => x.dictValue === this.parms.type);
return val ? val.dictLabel : '';
}
}
}
</script>


+ 95
- 87
src/views/managerAbnormal/managerAbnormal.vue Переглянути файл

@@ -3,51 +3,25 @@

<div class="header_main">

<el-dropdown trigger="click" placement="bottom-start">
<div class="select_address el-dropdown-link">
<span class="sanjiao-right"></span>
<p>大足区</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>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>

<el-dropdown trigger="click" placement="bottom-start">
<div class="select_address el-dropdown-link">
<span class="sanjiao-right"></span>
<p>张家镇</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>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>

<el-dropdown trigger="click" placement="bottom-start">
<div class="select_address el-dropdown-link">
<span class="sanjiao-right"></span>
<p>记账</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>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>

<p class="todo_num">合同异常:<span>19</span>个</p>
<p class="todo_num2">记录异常:<span>1</span>个</p>
<p class="todo_num3">其他异常:<span>1</span>个</p>
<TopDeptChooser :county-code.sync="parms.countyCode" :town-code.sync="parms.townCode" :root-id="rootId" @dataChanged="chooseDept">
<el-dropdown trigger="click" placement="bottom-start">
<div class="select_address el-dropdown-link">
<span class="sanjiao-right"></span>
<p>{{typeName}}</p>
</div>
<el-dropdown-menu slot="dropdown" style="width: 8vw;text-align: center;">
<el-dropdown-item v-for="(item,index) in typeOptions">
<div class="selected" @click="chooseType(item.dictValue)">
<p>{{item.dictLabel}}</p>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</TopDeptChooser>

<p class="todo_num">记账异常:<span>{{abnormalSummary.numAbnormalVoucher}}</span>个</p>
<p class="todo_num2">合同异常:<span>{{abnormalSummary.numAbnormalContraction}}</span>个</p>
<p class="todo_num3">其他异常:<span>{{abnormalSummary.numAbnormalOther}}</span>个</p>

</div>

@@ -55,54 +29,30 @@

<div class="left_main">

<div class="left_main_block" v-for="(item,index) in 1" :key="index">
<div class="left_main_block" v-for="(item,index) in list" :key="index" v-if="list.length > 0">

<p class="left_tt">{{index+1}}.购入芒果52公斤 <span>负责人:张三</span><el-button type="danger" size="mini" icon="el-icon-edit"></el-button></p>
<p class="left_tt">{{index+1}}.{{item.name}} <span>负责人:{{item.handleUser}}</span><el-button type="danger" size="mini" icon="el-icon-edit" @click="remove(item)"></el-button></p>

<el-row>
<el-col span="4"><span>经济组织:</span>田娜合作社</el-col>
<el-col span="6"><span>所属地:</span>山东省/威海市/环翠区/羊头镇/张家村</el-col>
<el-col span="6"><span>详细地址:</span>万江路阿巴阿巴阿巴104号楼</el-col>
<el-col span="4"><span>申请人:</span>林萧天</el-col>
<el-col span="4"><span>联系电话:</span>158 0366 7149</el-col>
<el-col :span="4"><span>经济组织:</span>{{item.bookName}}</el-col>
<el-col :span="6"><span>所属地:</span>{{item.region}}</el-col>
<el-col :span="6"><span>详细地址:</span>{{item.address}}</el-col>
<el-col :span="4"><span>申请人:</span>{{item.applyUser}}</el-col>
<el-col :span="4"><span>联系电话:</span>{{item.tel}}</el-col>
</el-row>

<el-row>
<el-col span="4" style="color: #ef0027;"><span>挂起时间:</span>2023.3.10</el-col>
<el-col span="6" style="color: #ef0027;"><span>异常原因:</span>缺少收据</el-col>
<el-col :span="4" style="color: #ef0027;"><span>挂起时间:</span>{{item.orderAt}}</el-col>
<el-col :span="6" style="color: #ef0027;"><span>异常原因:</span>{{item.remark}}</el-col>
</el-row>


</div>

<img src="../../assets/images/managerAbnormal_icon_none.png" class="table_none" alt="">
<img src="../../assets/images/managerAbnormal_icon_none.png" class="table_none" alt="" v-else>
</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>

@@ -111,29 +61,87 @@
</template>

<script>
import TopDeptChooser from "@/components/framework/TopDeptChooser.vue";
import RightYearMonthSelector from "@/components/framework/RightYearMonthSelector.vue";
import {date_format} from "@/utils/date";
import {ENV} from "@/utils/env";
import {managerAbnormalTaskList, managerAbnormalTaskSummary, removeAbnormalTask} from "@/api/agentcenter/task";

export default {
name: "todo",
components: {RightYearMonthSelector, TopDeptChooser},
data() {
return {
year:'2023',
list: [],
total: 0,
parms: {
countyCode: null,
townCode: null,
type: 'contraction',
orderYear: date_format('%Y'),
orderMonth: date_format('%m'),
},
abnormalSummary: {
num: 0,
numAbnormalContraction: 0,
numAbnormalVoucher: 0,
numAbnormalOther: 0,
},
rootId: ENV.UserDeptId(),
typeOptions: [
{dictLabel: '合同', dictValue: 'contraction',},
{dictLabel: '记账', dictValue: 'voucher',},
{dictLabel: '其他', dictValue: 'other',},
],
}
},
created() {

},
methods:{
addDate(){
this.year = Number(this.year) + 1 ;
getTaskList() {
if(!this.parms.countyCode || !this.parms.orderYear || !this.parms.orderMonth || !this.parms.type)
return;
managerAbnormalTaskList(this.parms).then((resp) => {
this.list = resp.rows;
this.total = resp.total;
})
},
getSummary() {
if(!this.parms.countyCode || !this.parms.orderYear || !this.parms.orderMonth)
return;
managerAbnormalTaskSummary(this.parms).then((resp) => {
this.abnormalSummary = resp.data;
})
},
reduceDate(){
this.year = Number(this.year) - 1 ;
remove(row) {
removeAbnormalTask(row.type, row.id).then((resp) => {
this.$message.success('删除成功');
this.getSummary();
this.getTaskList();
})
},
selectionRange(){
this.$refs.datePicker.focus();
chooseDept(countyCode, townCode) {
this.getTaskList();
this.getSummary();
},
chooseMonth(year, month) {
this.getSummary();
this.getTaskList();
},
chooseType(type) {
this.parms.type = type;
this.getTaskList();
},
},
mounted(){

},
computed: {
typeName() {
let val = this.typeOptions.find((x) => x.dictValue === this.parms.type);
return val ? val.dictLabel : '';
}
}
}
</script>


Завантаження…
Відмінити
Зберегти