feat: 1 新增用户审批状态接口 2 新增审批用户查询条件

This commit is contained in:
ganzizi 2023-09-08 19:14:31 +08:00
parent 0e9c1c19ce
commit 39a0d001ef
5 changed files with 46 additions and 14 deletions

View File

@ -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'));

View File

@ -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;
} }
} }

View File

@ -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 '';
}
}
} }

View File

@ -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;

View File

@ -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() {