mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-14 12:42:51 +00:00
feat: 1 新增用户审批状态接口 2 新增审批用户查询条件
This commit is contained in:
parent
0e9c1c19ce
commit
39a0d001ef
@ -360,6 +360,7 @@ class ApproveController extends AbstractController
|
|||||||
{
|
{
|
||||||
$user = User::auth();
|
$user = User::auth();
|
||||||
$data['userid'] = (string)$user->userid;
|
$data['userid'] = (string)$user->userid;
|
||||||
|
$data['username'] = Request::input('username');
|
||||||
$data['procName'] = Request::input('proc_def_name');
|
$data['procName'] = Request::input('proc_def_name');
|
||||||
$data['sort'] = Request::input('sort');
|
$data['sort'] = Request::input('sort');
|
||||||
$data['pageIndex'] = intval(Request::input('page'));
|
$data['pageIndex'] = intval(Request::input('page'));
|
||||||
@ -402,6 +403,7 @@ class ApproveController extends AbstractController
|
|||||||
{
|
{
|
||||||
$user = User::auth();
|
$user = User::auth();
|
||||||
$data['userid'] = (string)$user->userid;
|
$data['userid'] = (string)$user->userid;
|
||||||
|
$data['username'] = Request::input('username');
|
||||||
$data['procName'] = Request::input('proc_def_name'); //分类
|
$data['procName'] = Request::input('proc_def_name'); //分类
|
||||||
$data['state'] = intval(Request::input('state')); //状态
|
$data['state'] = intval(Request::input('state')); //状态
|
||||||
$data['pageIndex'] = intval(Request::input('page'));
|
$data['pageIndex'] = intval(Request::input('page'));
|
||||||
@ -561,6 +563,7 @@ class ApproveController extends AbstractController
|
|||||||
{
|
{
|
||||||
$user = User::auth();
|
$user = User::auth();
|
||||||
$data['userid'] = (string)$user->userid;
|
$data['userid'] = (string)$user->userid;
|
||||||
|
$data['username'] = Request::input('username');
|
||||||
$data['procName'] = Request::input('proc_def_name');
|
$data['procName'] = Request::input('proc_def_name');
|
||||||
$data['sort'] = Request::input('sort');
|
$data['sort'] = Request::input('sort');
|
||||||
$data['pageIndex'] = intval(Request::input('page'));
|
$data['pageIndex'] = intval(Request::input('page'));
|
||||||
@ -641,6 +644,7 @@ class ApproveController extends AbstractController
|
|||||||
{
|
{
|
||||||
$user = User::auth();
|
$user = User::auth();
|
||||||
$data['userid'] = (string)$user->userid;
|
$data['userid'] = (string)$user->userid;
|
||||||
|
$data['username'] = Request::input('username');
|
||||||
$data['procName'] = Request::input('proc_def_name');
|
$data['procName'] = Request::input('proc_def_name');
|
||||||
$data['sort'] = Request::input('sort');
|
$data['sort'] = Request::input('sort');
|
||||||
$data['pageIndex'] = intval(Request::input('page'));
|
$data['pageIndex'] = intval(Request::input('page'));
|
||||||
|
|||||||
@ -633,6 +633,12 @@ class UsersController extends AbstractController
|
|||||||
$basic = UserDelete::userid2basic($id);
|
$basic = UserDelete::userid2basic($id);
|
||||||
}
|
}
|
||||||
if ($basic) {
|
if ($basic) {
|
||||||
|
// 用户审批状态
|
||||||
|
$approval_status = Base::getUserApprovalStatus($basic->userid);
|
||||||
|
if ($approval_status != ''){
|
||||||
|
$basic->approval_status = $approval_status;
|
||||||
|
}
|
||||||
|
//
|
||||||
$retArray[] = $basic;
|
$retArray[] = $basic;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2936,4 +2936,22 @@ class Base
|
|||||||
}
|
}
|
||||||
return $newArray;
|
return $newArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户审批状态
|
||||||
|
*
|
||||||
|
* @param [type] $userid
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function getUserApprovalStatus($userid) {
|
||||||
|
$data['userid'] = $userid;
|
||||||
|
$url = env('FLOW_URL') ?: 'http://approve';
|
||||||
|
$ret = Ihttp::ihttp_get($url.'/api/v1/workflow/process/getUserApprovalStatus?'.http_build_query($data));
|
||||||
|
$procdef = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
|
||||||
|
if (isset($procdef['status']) && $procdef['status'] == 200) {
|
||||||
|
return isset($procdef['data']["proc_def_name"]) ? $procdef['data']["proc_def_name"] : '';
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,9 +36,8 @@
|
|||||||
<Select v-model="approvalType" @on-change="tabsClick(false,0)">
|
<Select v-model="approvalType" @on-change="tabsClick(false,0)">
|
||||||
<Option v-for="item in approvalList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
<Option v-for="item in approvalList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
||||||
</Select>
|
</Select>
|
||||||
<div v-if="this.loadIng" class="load">
|
<Input v-model="approvalName" :placeholder="$L('请输入用户名')" ></Input>
|
||||||
<Loading/>
|
<Button type="primary" :loading="loadIng" icon="ios-search" @click="tabsClick(false,0)">{{ $L('搜索') }}</Button>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -66,9 +65,8 @@
|
|||||||
<Select v-model="approvalType" @on-change="tabsClick(false,0)">
|
<Select v-model="approvalType" @on-change="tabsClick(false,0)">
|
||||||
<Option v-for="item in approvalList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
<Option v-for="item in approvalList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
||||||
</Select>
|
</Select>
|
||||||
<div v-if="this.loadIng" class="load">
|
<Input v-model="approvalName" :placeholder="$L('请输入用户名')"></Input>
|
||||||
<Loading/>
|
<Button type="primary" :loading="loadIng" icon="ios-search" @click="tabsClick(false,0)">{{ $L('搜索') }}</Button>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="doneList.length==0" class="noData">{{$L('暂无数据')}}</div>
|
<div v-if="doneList.length==0" class="noData">{{$L('暂无数据')}}</div>
|
||||||
@ -95,9 +93,8 @@
|
|||||||
<Select v-model="approvalType" @on-change="tabsClick(false,0)">
|
<Select v-model="approvalType" @on-change="tabsClick(false,0)">
|
||||||
<Option v-for="item in approvalList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
<Option v-for="item in approvalList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
||||||
</Select>
|
</Select>
|
||||||
<div v-if="this.loadIng" class="load">
|
<Input v-model="approvalName" :placeholder="$L('请输入用户名')"></Input>
|
||||||
<Loading/>
|
<Button type="primary" :loading="loadIng" icon="ios-search" @click="tabsClick(false,0)">{{ $L('搜索') }}</Button>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -127,9 +124,8 @@
|
|||||||
<Select v-model="searchState" @on-change="tabsClick(false,0)">
|
<Select v-model="searchState" @on-change="tabsClick(false,0)">
|
||||||
<Option v-for="item in searchStateList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
<Option v-for="item in searchStateList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
||||||
</Select>
|
</Select>
|
||||||
<div v-if="this.loadIng" class="load">
|
<Input v-model="approvalName" :placeholder="$L('请输入用户名')"></Input>
|
||||||
<Loading/>
|
<Button type="primary" :loading="loadIng" icon="ios-search" @click="tabsClick(false,0)">{{ $L('搜索') }}</Button>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="initiatedList.length==0" class="noData">{{$L('暂无数据')}}</div>
|
<div v-if="initiatedList.length==0" class="noData">{{$L('暂无数据')}}</div>
|
||||||
@ -267,6 +263,7 @@ export default {
|
|||||||
tabsValue: "",
|
tabsValue: "",
|
||||||
//
|
//
|
||||||
approvalType: "all",
|
approvalType: "all",
|
||||||
|
approvalName: "",
|
||||||
approvalList: [
|
approvalList: [
|
||||||
{ value: "all", label: this.$L("全部审批") },
|
{ value: "all", label: this.$L("全部审批") },
|
||||||
],
|
],
|
||||||
@ -440,6 +437,7 @@ export default {
|
|||||||
this.tabsValue = val || this.tabsValue
|
this.tabsValue = val || this.tabsValue
|
||||||
if(val){
|
if(val){
|
||||||
this.approvalType = this.searchState = "all"
|
this.approvalType = this.searchState = "all"
|
||||||
|
this.approvalName = ""
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
this.detailsShow = false;
|
this.detailsShow = false;
|
||||||
@ -531,6 +529,7 @@ export default {
|
|||||||
page: type == 'scroll' ? this.unreadPage : 1,
|
page: type == 'scroll' ? this.unreadPage : 1,
|
||||||
page_size: type == 'scroll' ? this.pageSize : this.unreadPage * this.pageSize,
|
page_size: type == 'scroll' ? this.pageSize : this.unreadPage * this.pageSize,
|
||||||
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
|
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
|
||||||
|
username: this.approvalName,
|
||||||
}
|
}
|
||||||
}).then(({data}) => {
|
}).then(({data}) => {
|
||||||
let activeId = 0;
|
let activeId = 0;
|
||||||
@ -572,6 +571,7 @@ export default {
|
|||||||
page: type == 'scroll' ? this.donePage : 1,
|
page: type == 'scroll' ? this.donePage : 1,
|
||||||
page_size: type == 'scroll' ? this.pageSize : this.donePage * this.pageSize,
|
page_size: type == 'scroll' ? this.pageSize : this.donePage * this.pageSize,
|
||||||
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
|
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
|
||||||
|
username: this.approvalName,
|
||||||
}
|
}
|
||||||
}).then(({data}) => {
|
}).then(({data}) => {
|
||||||
let activeId = 0;
|
let activeId = 0;
|
||||||
@ -613,6 +613,7 @@ export default {
|
|||||||
page: type == 'scroll' ? this.notifyPage : 1,
|
page: type == 'scroll' ? this.notifyPage : 1,
|
||||||
page_size: type == 'scroll' ? this.pageSize : this.notifyPage * this.pageSize,
|
page_size: type == 'scroll' ? this.pageSize : this.notifyPage * this.pageSize,
|
||||||
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
|
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
|
||||||
|
username: this.approvalName,
|
||||||
}
|
}
|
||||||
}).then(({data}) => {
|
}).then(({data}) => {
|
||||||
let activeId = 0;
|
let activeId = 0;
|
||||||
@ -654,7 +655,8 @@ export default {
|
|||||||
page: type == 'scroll' ? this.initiatedPage : 1,
|
page: type == 'scroll' ? this.initiatedPage : 1,
|
||||||
page_size: type == 'scroll' ? this.pageSize : this.initiatedPage * this.pageSize,
|
page_size: type == 'scroll' ? this.pageSize : this.initiatedPage * this.pageSize,
|
||||||
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
|
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
|
||||||
state: this.searchState == 'all' ? '' : this.searchState
|
state: this.searchState == 'all' ? '' : this.searchState,
|
||||||
|
username: this.approvalName,
|
||||||
}
|
}
|
||||||
}).then(({data}) => {
|
}).then(({data}) => {
|
||||||
let activeId = 0;
|
let activeId = 0;
|
||||||
|
|||||||
@ -44,6 +44,7 @@
|
|||||||
<h2>{{dialogData.name}}</h2>
|
<h2>{{dialogData.name}}</h2>
|
||||||
<em v-if="peopleNum > 0" @click="onDialogMenu('groupInfo')">({{peopleNum}})</em>
|
<em v-if="peopleNum > 0" @click="onDialogMenu('groupInfo')">({{peopleNum}})</em>
|
||||||
<Tag v-if="dialogData.bot" class="after" :fade="false">{{$L('机器人')}}</Tag>
|
<Tag v-if="dialogData.bot" class="after" :fade="false">{{$L('机器人')}}</Tag>
|
||||||
|
<Tag v-if="cacheUserBasic.find(item => item.userid === dialogData.dialog_user.userid)?.approval_status" class="after" color="red" :fade="false">{{$L(cacheUserBasic.find(item => item.userid === dialogData.dialog_user.userid)?.approval_status)}}</Tag>
|
||||||
<Tag v-if="dialogData.group_type=='all'" class="after pointer" :fade="false" @on-click="onDialogMenu('groupInfo')">{{$L('全员')}}</Tag>
|
<Tag v-if="dialogData.group_type=='all'" class="after pointer" :fade="false" @on-click="onDialogMenu('groupInfo')">{{$L('全员')}}</Tag>
|
||||||
<Tag v-else-if="dialogData.group_type=='department'" class="after pointer" :fade="false" @on-click="onDialogMenu('groupInfo')">{{$L('部门')}}</Tag>
|
<Tag v-else-if="dialogData.group_type=='department'" class="after pointer" :fade="false" @on-click="onDialogMenu('groupInfo')">{{$L('部门')}}</Tag>
|
||||||
<div v-if="msgLoadIng > 0" class="load"><Loading/></div>
|
<div v-if="msgLoadIng > 0" class="load"><Loading/></div>
|
||||||
@ -661,6 +662,7 @@ export default {
|
|||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.msgSubscribe = Store.subscribe('dialogMsgChange', this.onMsgChange);
|
this.msgSubscribe = Store.subscribe('dialogMsgChange', this.onMsgChange);
|
||||||
|
console.log('dialogMsgChange', this.cacheUserBasic)
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user