Commit e18c8a30 authored by 罗超's avatar 罗超

工作计划功能

parent 912cb4e1
......@@ -479,7 +479,7 @@ export default {
GoZcUrl(){
let url='';
if (!this.isOnline()) {
url="http://www.test.com:8080/#/Home";
url="http://testerp.oytour.com:8080/#/Home";
}else{
url="http://zcyx.oytour.com/#/Home";
}
......
......@@ -1965,7 +1965,7 @@ export default {
if(s.Type==7){
let url="";
if (!this.isOnline()) {
url="http://www.test.com:8081/#/";
url="http://testerp.oytour.com:8081/#/";
}else{
url="http://yx.oytour.com/#/";
}
......@@ -3611,7 +3611,7 @@ export default {
let ObjInfo=JSON.stringify(obj);
if (!this.isOnline()) {
// url="http://zcyx.oytour.com/#/Autologin?ObjInfo="+userinfo.token+"&SecretKey="+userinfo.SecretKey;
url="http://www.test.com:8080/#/Autologin?token="+userinfo.token+"&SecretKey="+userinfo.SecretKey;
url="http://testerp.oytour.com:8080/#/Autologin?token="+userinfo.token+"&SecretKey="+userinfo.SecretKey;
}else{
url="http://zcyx.oytour.com/#/Autologin?ObjInfo="+userinfo.token+"&SecretKey="+userinfo.SecretKey;
}
......
<style scope>
.circle {
width: 20px;
height: 20px;
display: inline-block;
text-align: center;
background: grey;
border-radius: 20px;
margin-right: 5px;
}
.circle.red {
background: #fe4433;
}
.circle.green {
background: green;
}
.circle.black {
background: black;
}
.remark {
margin-right: 20px;
font-size: 12px;
display: inline-block;
vertical-align: text-top;
}
.wd100 {
width: 100% !important;
}
.el-tag + .el-tag {
margin-left: 10px;
}
.button-new-tag {
margin-left: 10px;
height: 32px;
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
}
.input-new-tag {
width: 90px;
margin-left: 10px;
vertical-align: bottom;
}
</style>
<template>
<div class="flexOne companyManagement">
<div class="query-box">
<ul>
<li>
<span>
<em>计划状态</em>
<el-select v-model="statusValue" placeholder="请选择" @change="changeStatus">
<el-option label="不限" value="-1"></el-option>
<el-option label="进行中" value="0"></el-option>
<el-option label="超时未完成" value="1"></el-option>
<el-option label="超时完成" value="2"></el-option>
<el-option label="完成" value="3"></el-option>
<!-- <el-option label="未开始" value="-2"></el-option> -->
</el-select>
</span>
</li>
<li>
<span>
<em>立项审批状态</em>
<el-select v-model="examineStatusValue" placeholder="请选择" @change="changeStatus">
<el-option label="不限" value="-2"></el-option>
<el-option label="审批中" value="0"></el-option>
<el-option label="审批通过" value="1"></el-option>
<el-option label="审批驳回" value="-1"></el-option>
</el-select>
</span>
</li>
<!-- <li>
<span><em>{{$t('admin.admin_domain')}}</em>
<el-input @keyup.enter.native="getList" v-model="msg.Domain" :placeholder="$t('pub.pleaseImport')">
</el-input>
</span>
</li>
<li>
<span><em>{{$t('admin.admin_status')}}</em>
<el-select v-model="msg.Status" :placeholder="$t('pub.unlimitedSel')">
<el-option :label="$t('pub.unlimitedSel')" value=''></el-option>
<el-option :label="$t('pub.openSel')" value='0'></el-option>
<el-option :label="$t('pub.closeSel')" value='1'></el-option>
</el-select>
</span>
</li>-->
<li>
<!-- <input type="button" class="hollowFixedBtn" value="查询" /> &nbsp; -->
<input type="button" class="normalBtn" value="新增计划" @click="add" />
</li>
</ul>
</div>
<div style="margin:10px 0;">
<span class="circle green"></span>
<span class="remark">进行中</span>
<span class="circle red"></span>
<span class="remark">超时</span>
<span class="circle black"></span>
<span class="remark">完成</span>
<span class="circle"></span>
<span class="remark">未开始</span>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th>状态</th>
<th>标签</th>
<th width="300">标题</th>
<th>内容概要</th>
<th>开始时间</th>
<th>截止时间</th>
<th>创建时间</th>
<th>立项审批信息</th>
<th>当前进度</th>
<th>完成审批信息</th>
<th width="200">操作</th>
</tr>
<tr v-for="(item, index) in tempList" :key="index">
<td>
<span class="circle" v-if="item.ExamineStatus==0||item.ExamineStatus==-1"></span>
<span class="circle green" v-else-if="item.Status==0"></span>
<span class="circle red" v-else-if="item.Status==1||item.Status==2"></span>
<span class="circle black" v-else-if="item.Status==3"></span>
</td>
<td>
<el-tag v-if="item.Tags.length>0">{{item.Tags}}</el-tag>
</td>
<td>{{item.Title}}</td>
<td width="250">
<el-tooltip effect="dark" :content="item.Description" placement="top-start">
<span>{{item.Description.length>23?item.Description.substring(0,23)+"...":item.Description}}</span>
</el-tooltip>
</td>
<td>{{item.BeginTime}}</td>
<td>{{item.EndTime}}</td>
<td>{{item.CreateDate}}</td>
<td>
<span v-if="item.ExamineStatus==0" style="color:grey">审批中</span>
<span
v-else-if="item.ExamineStatus==1"
style="color:green;text-decoration: underline;"
>已通过</span>
<span v-else style="color:red;text-decoration: underline;">已驳回</span>
</td>
<td>
<el-progress
:text-inside="true"
:stroke-width="24"
:percentage="item.Progree"
status="success"
></el-progress>
</td>
<td>
<span v-if="item.Status==2||item.Status==3">
<span v-if="item.FinishExamineStatus==0" style="color:grey">审批中</span>
<span
v-else-if="item.FinishExamineStatus==1"
style="color:green;text-decoration: underline;"
>已通过</span>
<span v-else style="color:red;text-decoration: underline;">已驳回</span>
</span>
</td>
<td>
<el-tooltip
class="item"
effect="dark"
content="编辑"
placement="top-start"
v-if="item.ExamineStatus==0 || item.ExamineStatus==-1"
>
<el-button
@click.stop="EditMsg(item)"
style="padding:4px"
type="primary"
icon="iconfont icon-bianji"
circle
></el-button>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="删除"
placement="top-start"
v-if="item.ExamineStatus==0 || item.ExamineStatus==-1"
>
<el-button
style="padding:4px"
type="danger"
icon="el-icon-delete"
@click.stop="deleteItem(item.Id)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="详情"
placement="top-start"
>
<el-button
style="padding:4px"
type="info"
icon="el-icon-search"
@click.stop="query(item.Id)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="更新进度"
placement="top-start"
v-if="item.ExamineStatus==1 && (item.Status==1 || item.Status==0)"
>
<el-button
style="padding:4px"
type="primary"
icon="el-icon-check"
@click.stop="query2(item.Id)"
circle
></el-button>
</el-tooltip>
</td>
</tr>
</table>
<el-dialog
width="40%"
:title="dialogTitle"
:visible.sync="outerVisible"
:close-on-click-modal="false"
center
:before-close="closeChangeMachie"
>
<el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="120px">
<el-form-item class="wd100" label="计划标题" prop="Title">
<el-input clearable type="text" v-model="addMsg.Title" placeholder="请输入计划标题"></el-input>
</el-form-item>
<el-form-item class="wd100" label="计划内容" prop="Description">
<el-input
clearable
type="textarea"
v-model="addMsg.Description"
:rows="8"
placeholder="请输入计划标题"
></el-input>
</el-form-item>
<el-form-item label="计划日期" prop="TimeRanges">
<el-date-picker
v-model="addMsg.TimeRanges"
type="datetimerange"
class="wd100"
align="right"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd HH:mm"
:default-time="['09:30:00', '18:00:00']"
></el-date-picker>
</el-form-item>
<el-form-item class="wd100" label="计划标签">
<el-tag
:key="tag"
v-for="tag in addMsg.TempTags"
closable
:disable-transitions="false"
@close="handleClose(tag)"
>{{tag}}</el-tag>
<el-input
class="input-new-tag"
v-if="inputVisible"
v-model="inputValue"
ref="saveTagInput"
size="small"
maxlength="6"
@keyup.enter.native="handleInputConfirm"
@blur="handleInputConfirm"
></el-input>
<el-button
v-else-if="addMsg.TempTags.length<1"
class="button-new-tag"
size="small"
@click="showInput"
>+ 新增标签</el-button>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<button
class="hollowFixedBtn"
@click="outerVisible = false,resetForm('addMsg')"
>{{$t('pub.cancelBtn')}}</button>
&nbsp;
<button
class="normalBtn"
type="primary"
@click="submitForm('addMsg')"
>{{$t('pub.saveBtn')}}</button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
statusValue: "-1",
dialogTitle: "新增计划",
outerVisible: false,
rules: {
//表单验证
Title: [
{
required: true,
message: "请输入计划标题",
trigger: "blur"
}
],
Description: [
{
required: true,
message: "请输入计划内容",
trigger: "blur"
}
],
TimeRanges: [
{
required: true,
message: "请选择计划日期",
trigger: "blur"
}
]
},
addMsg: {
Id: "0",
Title: "",
Description: "",
TimeRanges: "",
TempTags: [],
BeginTime: "",
EndTime: "",
Tags: ""
},
inputVisible: false,
inputValue: "",
datas: [],
tempList: [],
examineStatusValue: "-2"
};
},
mounted() {
this.getList();
},
methods: {
add() {
this.dialogTitle = "新增计划";
this.outerVisible = true;
},
EditMsg(item) {
this.dialogTitle = "修改计划";
(this.addMsg = {
Id: item.Id,
Title: item.Title,
Description: item.Description,
TimeRanges: [item.BeginTime, item.EndTime],
TempTags: [item.Tags],
BeginTime: item.BeginTime,
EndTime: item.EndTime,
Tags: item.Tags
}),
(this.outerVisible = true);
},
changeStatus() {
this.tempList = [];
this.datas.forEach(x => {
let isAdd = false;
if (
(this.statusValue != -1 && x.Status == this.statusValue) ||
this.statusValue == -1
) {
isAdd = true;
}
if (isAdd) {
if (
(this.examineStatusValue != -2 &&
x.ExamineStatus == this.examineStatusValue) ||
this.examineStatusValue == -2
) {
isAdd = true;
} else {
isAdd = false;
}
}
if (isAdd) {
this.tempList.push(x);
}
});
},
handleClose(tag) {
this.addMsg.TempTags.splice(this.addMsg.TempTags.indexOf(tag), 1);
},
showInput() {
this.inputVisible = true;
this.$nextTick(_ => {
this.$refs.saveTagInput.$refs.input.focus();
});
},
handleInputConfirm() {
let inputValue = this.inputValue;
if (inputValue) {
this.addMsg.TempTags.push(inputValue);
}
this.inputVisible = false;
this.inputValue = "";
},
closeChangeMachie(done) {
this.resetForm("addMsg");
done();
},
resetForm(formName) {
//弹出框取消 初始化谈框内表单
this.$refs[formName].resetFields();
this.addMsg.Id = "0";
},
submitForm(addMsg) {
//提交创建、修改表单
this.$refs[addMsg].validate(valid => {
if (valid) {
this.addData();
} else {
return false;
}
});
},
addData() {
console.log(this.addMsg);
this.addMsg.BeginTime = this.addMsg.TimeRanges[0];
this.addMsg.EndTime = this.addMsg.TimeRanges[1];
this.addMsg.Tags =
this.addMsg.TempTags && this.addMsg.TempTags.length == 1
? this.addMsg.TempTags[0]
: "";
//新增数据
this.apipost(
"user_post_SetWork",
this.addMsg,
res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.outerVisible = false;
this.getList();
this.resetForm("addMsg");
} else {
this.$message.error(res.data.message);
}
},
err => {}
);
//this.getList();
},
getList() {
this.apipost(
"user_post_GetMyWork",
{},
res => {
if (res.data.resultCode == 1) {
//this.$message.success(res.data.message);
this.datas = res.data.data;
this.tempList = res.data.data;
} else {
this.$message.error(res.data.message);
}
},
err => {}
);
},
deleteItem(id) {
this.apipost(
"user_post_DeleteWork",
{id},
res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.statusValue = "-1";
this.examineStatusValue = "-2";
this.getList();
} else {
this.$message.error(res.data.message);
}
},
err => {}
);
},
query(id){
this.$router.push({
name: "workDetails",
query: {
"id": id,
blank: 'y'
}
})
},
query2(id){
this.$router.push({
name: "workDetails",
query: {
"id": id,
update:"u",
blank: 'y'
}
})
}
}
};
</script>
<template>
<div>
<div style="margin:10px auto;">
<h3
v-if="d.w"
style="font-size:18px;border-bottom:1px solid #ddd;font-weight:400;font-family:pingfangR;padding-bottom:10px;"
>
<span class="circle" v-if="d.w.ExamineStatus==0||d.w.ExamineStatus==-1"></span>
<span class="circle green" v-else-if="d.w.Status==0"></span>
<span class="circle red" v-else-if="d.w.Status==1||d.w.Status==2"></span>
<span class="circle black" v-else-if="d.w.Status==3"></span>
<span style="margin-right:15px;">{{d.w.Title}}</span>
<el-tag v-if="d.w.Tags.length>0">{{d.w.Tags}}</el-tag>
</h3>
<div
v-if="d.w"
style="font-size:14px;font-family:pingfangR;margin: 10px 0;padding: 10px;background: #FFF;"
>{{d.w.Description}}</div>
<fieldset style="border: 1px solid #DDD;padding: 13px;font-size: 12px;">
<legend style="padding:0 10px; font-size:14px;">计划工时信息</legend>
<el-row :gutter="12">
<el-col :span="6">创建人:{{d.w.CreateName}}</el-col>
<el-col :span="6">创建日期:{{d.w.CreateDate}}</el-col>
<el-col :span="6">开始时间:{{d.w.BeginTime}}</el-col>
<el-col :span="6">截止时间:{{d.w.EndTime}}</el-col>
</el-row>
</fieldset>
<fieldset style="border: 1px solid #DDD;padding: 13px;font-size: 12px;margin-top:30px;">
<legend style="padding:0 10px; font-size:14px;">计划操作记录</legend>
<div v-if="d.w.ExamineStatus==1">
<el-card class="work-content green">
<h4>主管立项审核通过</h4>
<p>{{d.w.ExamineState}} 提交于 {{d.w.ExamineDate}}</p>
<div class="cont">{{d.w.ExamineRemark}}</div>
</el-card>
</div>
<div v-if="d.w.ExamineStatus==-1">
<el-card class="work-content red">
<h4>主管立项审核驳回</h4>
<p>{{d.w.ExamineState}} 提交于 {{d.w.ExamineDate}}</p>
<div class="cont">{{d.w.ExamineRemark}}</div>
</el-card>
</div>
<div v-for="(item, index) in d.p" :key="index">
<el-card class="work-content">
<h4>
进度更新:
<div style="width:120px;display: inline-block;margin-left: 15px;">
<el-progress
:text-inside="true"
:stroke-width="24"
:percentage="item.Progree"
status="success"
></el-progress>
</div>
</h4>
<p v-if="d.w">{{d.w.CreateName}} 提交于 {{item.CreateDate}}</p>
<div class="cont">{{item.Content}}</div>
<div class="attach">
<a href="http://baidu.com" target="_blank">附件:baidu.jpg</a>
</div>
</el-card>
</div>
<div v-if="d.w.FinishExamineStatus==1">
<el-card class="work-content green">
<h4>主管完结审核通过</h4>
<p>{{d.w.FinishExamineState}} 提交于 {{d.w.FinishExamineDate}}</p>
<div class="cont">{{d.w.FinishExamineRemark}}</div>
</el-card>
</div>
<div v-if="d.w.FinishExamineStatus==-1">
<el-card class="work-content red">
<h4>主管完结审核驳回</h4>
<p>{{d.w.FinishExamineState}} 提交于 {{d.w.FinishExamineDate}}</p>
<div class="cont">{{d.w.FinishExamineRemark}}</div>
</el-card>
</div>
</fieldset>
<fieldset v-if="isEaxmine && d.w && (d.w.ExamineStatus==0 || (d.w.Status>=2 && d.w.FinishExamineStatus==0))" style="border: 1px solid #DDD;padding: 13px;font-size: 12px;margin-top:20px;">
<legend style="padding:0 10px; font-size:14px;">审批</legend>
<div style="margin-bottom:10px">
<el-radio v-model="radio" label="1">通过</el-radio>
<el-radio v-model="radio" label="-1">驳回</el-radio>
</div>
<div style="margin-bottom:10px">
<el-input
type="textarea"
:rows="4"
style="width:100%"
placeholder="请输入审批意见"
v-model="textarea">
</el-input>
</div>
<div slot="footer" class="dialog-footer">
<button
class="normalBtn"
type="primary"
@click="goexamine"
>确认提交</button>
</div>
</fieldset>
<fieldset v-if="isUpdate && d.w && ((d.w.Status==0 && d.w.ExamineStatus==1) || d.w.Status==1)" style="border: 1px solid #DDD;padding: 13px;font-size: 12px;margin-top:20px;">
<legend style="padding:0 10px; font-size:14px;">提交进度</legend>
<div style="margin-bottom:10px;">
<el-row :gutter="12">
<el-col :span="1"> 当前进度: </el-col>
<el-col :span="4"><el-slider v-model="progree" :min="d.w.Progree" :max="100" :step="1"></el-slider></el-col>
</el-row>
</div>
<div style="margin-bottom:10px">
<el-input
type="textarea"
:rows="4"
style="width:100%"
placeholder="请输入进度说明"
v-model="textarea2">
</el-input>
</div>
<div slot="footer" class="dialog-footer">
<button
class="normalBtn"
type="primary"
@click="setprogress"
>确认提交</button>
</div>
</fieldset>
</div>
</div>
</template>
<script>
export default {
data() {
return {
d: {},
radio:"1",
isEaxmine:false,
isUpdate:false,
textarea:'',
textarea2:'',
progree:0
};
},
mounted() {
let id = this.$route.query.id;
this.isEaxmine=this.$route.query.examine?true:false;
this.isUpdate=this.$route.query.update?true:false;
this.init(id);
},
methods: {
init(id) {
this.apipost(
"user_post_GetWorkDetails",
{ id },
res => {
if (res.data.resultCode == 1) {
this.d = res.data.data;
this.progree=this.d.w.Progree;
} else {
this.$message.error(res.data.message);
}
},
null
);
},
setprogress(){
if(this.textarea2==""){
this.$message.error("请填写进度说明");
return;
}
this.apipost(
"user_post_SetWorkProcess",
{
pid:this.$route.query.id,
content:this.textarea2,
progree:this.progree,
attach:""
},
res => {
if (res.data.resultCode == 1) {
window.location.reload();
} else {
this.$message.error(res.data.message);
}
},
null
);
},
goexamine(){
if(this.textarea==""){
this.$message.error("请填写审批意见");
return;
}
this.apipost(
"user_post_SetWorkExamine",
{
id:this.$route.query.id,
content:this.textarea,
status:this.radio
},
res => {
if (res.data.resultCode == 1) {
window.location.reload();
} else {
this.$message.error(res.data.message);
}
},
null
);
}
}
};
</script>
<style scope>
.circle {
width: 20px;
height: 20px;
display: inline-block;
vertical-align: text-top;
background: grey;
border-radius: 20px;
margin-right: 5px;
}
.circle.red {
background: #fe4433;
}
.circle.green {
background: green;
}
.circle.black {
background: black;
}
.work-content {
margin-bottom: 20px;
}
.work-content h4 {
font-weight: 400;
font-size: 16px;
margin-bottom: 10px;
}
.work-content p {
font-size: 12px;
color: #ddd !important;
margin-bottom: 10px;
}
.work-content .cont {
font-size: 14px;
font-family: pingfangR;
}
.work-content.green {
color: #fff;
background: #67c23a;
}
.work-content.red {
color: #fff;
background: #f56c6c;
}
.work-content.red *,
.work-content.green * {
color: #fff !important;
}
.work-content * {
color: #333;
}
.work-content .attach{
margin-top: 10px;
}
.work-content .attach a{
color: #409EFF;
text-decoration: underline;
}
</style>
\ No newline at end of file
<template>
<div class="flexOne groupts">
<div class="enrollTotalSearch">
<ul>
<li>
<span>
<em>{{$t('system.table_company')}}</em>
<el-select
class="w200"
v-model="msg.BranchId"
filterable
:placeholder="$t('pub.pleaseSel')"
@change="linkageDepartment()"
>
<el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option>
<el-option
v-for="item in companyList"
:label="item.BName"
:value="item.Id"
:key="item.Id"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em class="fl" style="margin-top: 10px!important;">{{$t('fnc.bmxuanze')}}</em>
<treeselect
class="w200 fl"
:options="departmentList"
v-model="msg.RB_Department_Id"
:label="$t('pub.unlimitedSel')"
:normalizer="normalizer"
@select="linkageEmployeeMsg"
/>
</span>
</li>
<li>
<span>
<em>{{$t('fnc.ryxuanze')}}</em>
</span>
<el-select
class="w200"
v-model="msg.CreateBy"
filterable
:placeholder="$t('pub.pleaseSel')"
>
<el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option>
<el-option
v-for="item in employeeList"
:label="item.name"
:value="item.empId"
:key="item.empId"
></el-option>
</el-select>
</li>
<li>
<span>
<em>审批状态</em>
<el-select class="w200" v-model="msg.examineStatus">
<el-option label="不限" value="-1"></el-option>
<el-option label="待我审批" value="0"></el-option>
<el-option label="我已审批" value="1"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>计划日期</em>
<el-date-picker
v-model="msg.timeRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</span>
</li>
<li>
<input
type="button"
class="hollowFixedBtn"
:value="$t('pub.searchBtn')"
@click="getList();resetPageIndex()"
/>
</li>
</ul>
</div>
<div style="margin:10px 0;">
<span class="circle green"></span>
<span class="remark">进行中</span>
<span class="circle red"></span>
<span class="remark">超时</span>
<span class="circle black"></span>
<span class="remark">完成</span>
<span class="circle"></span>
<span class="remark">未开始</span>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th>状态</th>
<th>标签</th>
<th width="300">标题</th>
<th>内容概要</th>
<th>开始时间</th>
<th>截止时间</th>
<th>创建时间</th>
<th>立项审批信息</th>
<th>当前进度</th>
<th>完成审批信息</th>
<th>操作</th>
</tr>
<tr v-for="(item, index) in DataList" :key="index">
<td>
<span class="circle" v-if="item.ExamineStatus==0||item.ExamineStatus==-1"></span>
<span class="circle green" v-else-if="item.Status==0"></span>
<span class="circle red" v-else-if="item.Status==1||item.Status==2"></span>
<span class="circle black" v-else-if="item.Status==3"></span>
</td>
<td>
<el-tag v-if="item.Tags.length>0">{{item.Tags}}</el-tag>
</td>
<td>{{item.Title}}</td>
<td width="250">
<el-tooltip effect="dark" :content="item.Description" placement="top-start">
<span>{{item.Description.length>23?item.Description.substring(0,23)+"...":item.Description}}</span>
</el-tooltip>
</td>
<td>{{item.BeginTime}}</td>
<td>{{item.EndTime}}</td>
<td>{{item.CreateDate}}</td>
<td>
<span v-if="item.ExamineStatus==0" style="color:grey">审批中</span>
<span
v-else-if="item.ExamineStatus==1"
style="color:green;text-decoration: underline;"
>已通过</span>
<span v-else style="color:red;text-decoration: underline;">已驳回</span>
</td>
<td>
<el-progress
:text-inside="true"
:stroke-width="24"
:percentage="item.Progree"
status="success"
></el-progress>
</td>
<td>
<span v-if="item.Status==2||item.Status==3">
<span v-if="item.FinishExamineStatus==0" style="color:grey">审批中</span>
<span
v-else-if="item.FinishExamineStatus==1"
style="color:green;text-decoration: underline;"
>已通过</span>
<span v-else style="color:red;text-decoration: underline;">已驳回</span>
</span>
</td>
<td>
<el-tooltip class="item" effect="dark" content="详情" placement="top-start">
<el-button
style="padding:4px"
type="info"
icon="el-icon-search"
@click.stop="query(item.Id)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="审核"
placement="top-start"
v-if="item.ExamineStatus==0 || ((item.Status==2 || item.Status==3) && item.FinishExamineStatus==0)"
>
<el-button
style="padding:4px"
type="primary"
icon="el-icon-check"
@click.stop="query2(item.Id)"
circle
></el-button>
</el-tooltip>
</td>
</tr>
</table>
<el-pagination
background
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
layout="total,prev, pager, next, jumper"
:page-size="msg.pageSize"
:total="total"
></el-pagination>
</div>
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import updateSalesMan from "../commonPage/updateSalesMan.vue";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
components: {
Treeselect
},
data() {
return {
normalizer(node) {
var obj = {
id: node.DepartmentId,
label: node.DepartmentName
};
if (node.ChildList != null && node.ChildList.length > 0) {
obj.children = node.ChildList;
}
return obj;
},
msg: {
BranchId: "-1",
RB_Department_Id: null,
pageIndex: 0,
pageSize: 10,
CreateBy: "-1",
examineStatus: "-1",
timeRange: []
},
getCompanyMsg: {
RB_Group_Id: "0",
Status: "0"
},
getDepartmentMsg: {
RB_Group_Id: "0",
RB_Branch_Id: "-1",
Status: "0"
},
employeeMsg: {
RB_Group_id: "0",
RB_Branch_id: "-1",
departmentId: "0",
IsLeave: "-1"
},
departmentList: [],
companyList: [],
employeeList: [],
userInfo: {},
datas: [],
currentPage: 1,
total: 0,
DataList: [],
loading: true
};
},
mounted() {
this.userInfo = this.getLocalStorage();
this.userId = this.userInfo.EmployeeId;
this.getCompanyMsg.RB_Group_Id = this.getDepartmentMsg.RB_Group_Id = this.userInfo.RB_Group_id; //集团
this.getCompany();
//this.getEmployee();
},
methods: {
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
getList() {
//获取数据
this.loading = true;
if(this.msg.timeRange && this.msg.timeRange.length==2){
this.msg.bt=this.msg.timeRange[0];
this.msg.et=this.msg.timeRange[1];
}else{
this.msg.bt="";
this.msg.et="";
}
this.apipost(
"user_post_GetWorkPageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.DataList = res.data.data.pageData;
this.total = res.data.data.count;
} else {
this.$message.error(res.data.message);
}
},
err => {}
);
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
getCompany() {
this.apipost(
"admin_get_BranchGetList",
this.getCompanyMsg,
res => {
if (res.data.resultCode == 1) {
if (this.userInfo.EmployeeId != 1) {
let that = this;
this.companyList = res.data.data.filter(x => {
if (x.Id == that.userInfo.RB_Branch_id) {
return x;
}
});
this.employeeMsg.RB_Branch_id = this.userInfo.RB_Branch_id;
this.msg.RB_Department_Id = this.userInfo.RB_Branch_id;
this.getEmployee();
} else {
this.companyList = res.data.data;
this.getEmployee();
}
} else {
}
this.getList();
},
err => {}
);
},
linkageEmployeeMsg(node, instanceId) {
this.employeeMsg.departmentId = node.DepartmentId;
this.msg.CreateBy = "-1";
this.getEmployee();
},
linkageDepartment() {
//联动部门
this.msg.RB_Department_Id = null;
if (this.msg.BranchId != 0) {
this.getDepartmentMsg.RB_Branch_Id = this.msg.BranchId;
}
this.getDepartment();
},
getDepartment() {
this.apipost(
"admin_Get_GetDepartmentTreeForReceiveQuery",
this.getDepartmentMsg,
res => {
if (res.data.resultCode == 1) {
this.departmentList = res.data.data;
} else {
this.Error(res.data.message);
}
},
err => {}
);
},
getEmployee() {
this.apipost(
"app_get_company_employee",
this.employeeMsg,
res => {
if (res.data.resultCode == 1) {
this.employeeList = res.data.data;
}
},
err => {}
);
},
query2(id){
this.$router.push({
name: "workDetails",
query: {
"id": id,
examine:"u",
blank: 'y'
}
})
}
}
};
</script>
<style scope>
.enrollTotalSearch {
width: 100%;
min-height: auto;
padding: 0 0 20px 0;
}
.enrollTotalSearch::after {
display: block;
clear: both;
content: "";
visibility: hidden;
height: 0;
}
.enrollTotalSearch li {
float: left;
font-size: 12px;
height: 40px;
color: #666;
margin: 20px 10px 10px 0;
}
.enrollTotalSearch li > span {
display: inline-block;
}
.enrollTotalSearch li span > em {
display: inline-block;
min-width: 60px;
text-align: right;
font-style: normal;
margin: 0 12px 0 0;
}
.enrollTotalSearch li:last-child {
float: right;
position: fixed;
top: 36px;
right: 20px;
text-align: right;
z-index: 50;
}
.circle {
width: 20px;
height: 20px;
display: inline-block;
text-align: center;
background: grey;
border-radius: 20px;
margin-right: 5px;
}
.circle.red {
background: #fe4433;
}
.circle.green {
background: green;
}
.circle.black {
background: black;
}
.remark {
margin-right: 20px;
font-size: 12px;
display: inline-block;
vertical-align: text-top;
}
.wd100 {
width: 100% !important;
}
.el-tag + .el-tag {
margin-left: 10px;
}
.button-new-tag {
margin-left: 10px;
height: 32px;
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
}
.input-new-tag {
width: 90px;
margin-left: 10px;
vertical-align: bottom;
}
</style>
\ No newline at end of file
......@@ -111,14 +111,14 @@ export default {
//域名管理对象
Vue.prototype.domainManager = function () {
let domainUrl = '';
domainUrl = "http://192.168.2.214:8082";
domainUrl = "http://127.0.0.1:8082";
let locationName = window.location.hostname;
let javaUrldo="";
javaUrldo=locationName.indexOf('oytour') !== -1 || locationName.indexOf('viitto') !== -1 ? (locationName.indexOf('oytour') !== -1 ? "http://efficient.oytour.com" : "http://47.96.12.235:9001") : "http://192.168.2.215:9000";
if (locationName.indexOf('testerp.oytour') !== -1) {
domainUrl = "http://testapi.oytour.com";
domainUrl = "http://127.0.0.1:8082";
}
else if (locationName.indexOf('oytour') !== -1) {
domainUrl = "http://reborn.oytour.com";
......
......@@ -4264,7 +4264,30 @@ export default {
title: '票务规则配置'
}
},
{
path: '/mywork',
name: 'mywork',
component: resolve => require(['@/components/work/mywork'], resolve),
meta: {
title: '我的工作计划'
},
},
{
path: '/workDetails',
name: 'workDetails',
component: resolve => require(['@/components/work/workDetails'], resolve),
meta: {
title: '工作计划详情'
},
},
{
path: '/workManager',
name: 'workManager',
component: resolve => require(['@/components/work/workManager'], resolve),
meta: {
title: '工作计划详情'
},
}
]
},
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment