Commit b1b08ce5 authored by 黄媛媛's avatar 黄媛媛
parents 2c99ba55 36bb924d
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
@import "../../assets/css/DMC.css"; @import "../../assets/css/DMC.css";
</style> </style>
<template> <template>
<div class="flexOne changInfo"> <div class="flexOne changInfo">
<div class="resource-content clearfix"> <div class="resource-content clearfix">
<el-form :model="addMsg" :rules="rules" ref="addMsg"> <el-form :model="addMsg" :rules="rules" ref="addMsg">
......
...@@ -479,7 +479,7 @@ export default { ...@@ -479,7 +479,7 @@ export default {
GoZcUrl(){ GoZcUrl(){
let url=''; let url='';
if (!this.isOnline()) { if (!this.isOnline()) {
url="http://www.test.com:8080/#/Home"; url="http://testerp.oytour.com:8080/#/Home";
}else{ }else{
url="http://zcyx.oytour.com/#/Home"; url="http://zcyx.oytour.com/#/Home";
} }
......
...@@ -1965,7 +1965,7 @@ export default { ...@@ -1965,7 +1965,7 @@ export default {
if(s.Type==7){ if(s.Type==7){
let url=""; let url="";
if (!this.isOnline()) { if (!this.isOnline()) {
url="http://www.test.com:8081/#/"; url="http://testerp.oytour.com:8081/#/";
}else{ }else{
url="http://yx.oytour.com/#/"; url="http://yx.oytour.com/#/";
} }
...@@ -3611,7 +3611,7 @@ export default { ...@@ -3611,7 +3611,7 @@ export default {
let ObjInfo=JSON.stringify(obj); let ObjInfo=JSON.stringify(obj);
if (!this.isOnline()) { if (!this.isOnline()) {
// url="http://zcyx.oytour.com/#/Autologin?ObjInfo="+userinfo.token+"&SecretKey="+userinfo.SecretKey; // 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{ }else{
url="http://zcyx.oytour.com/#/Autologin?ObjInfo="+userinfo.token+"&SecretKey="+userinfo.SecretKey; url="http://zcyx.oytour.com/#/Autologin?ObjInfo="+userinfo.token+"&SecretKey="+userinfo.SecretKey;
} }
......
<style>
.scenicRecommentList .clearfix:after {
content: "\0020";
display: block;
height: 0;
clear: both;
}
.scenicRecommentList .hotelResource {
width: 100%;
min-height: 500px;
margin-top: 20px;
}
.scenicRecommentList .resourceList {
width: 215px;
height: 240px;
background-color: #fff;
border: 1px dashed #ededed;
border-radius: 4px;
margin: 0 20px 20px 0;
font-size: 12px;
color: #333333;
float: left;
}
.scenicRecommentList .resourceList:hover {
box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
transition: all linear 0.5s;
}
.scenicRecommentList .reTopInfo {
width: 100%;
height: 123px;
position: relative;
}
.scenicRecommentList .reTopInfo img {
position: absolute;
width: 100%;
height: 100%;
top: 0;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.scenicRecommentList .resTypeList {
position: absolute;
top: 10px;
left: 10px;
}
.scenicRecommentList .resTypeList span {
display: inline-block;
padding: 1px 5px;
border-radius: 10px;
color: #fff;
margin-right: 10px;
}
.scenicRecommentList .L1 {
background-color: #e95252;
}
.scenicRecommentList .L2 {
background-color: #47bf8c;
}
.scenicRecommentList .L3 {
background-color: #2aaef2;
}
.scenicRecommentList .L4 {
background-color: #9cf;
}
.scenicRecommentList .L5 {
background-color: #00c6ff;
margin-top: 5px;
}
.scenicRecommentList .starSu {
position: absolute;
bottom: 8px;
right: 10px;
display: flex;
}
.scenicRecommentList .starSu .star {
margin-left: 5px;
}
.scenicRecommentList .sushe {
background-color: #ffc800;
display: inline-block;
padding: 1px 5px;
border-radius: 10px;
color: #fff;
}
.scenicRecommentList .hotelTitle {
margin: 20px 16px 0 16px;
font-size: 14px;
color: #333333;
height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.scenicRecommentList .brandList i {
position: relative;
top: 2px;
}
.scenicRecommentList .brand {
float: left;
width: 49%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: center;
}
.scenicRecommentList .dayNum {
float: right;
text-align: center;
width: 50%;
}
.scenicRecommentList .dieline {
color: #2aaef2;
font-size: 14px;
top: 1px !important;
}
.scenicRecommentList .AddressInner {
float: right;
width: 160px;
height: 18px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.scenicRecommentList .btnList {
margin-top: 20px;
text-align: center;
}
.scenicRecommentList .hotelBtn {
width: 60px;
height: 28px;
background: #f76f6f;
border-radius: 14px;
color: #fff;
cursor: pointer;
}
.scenicRecommentList .w150 .el-input {
width: 150px !important;
}
.scenicRecommentList .SupportCount {
color: #4bca81;
font-size: 18px;
font-weight: bold;
margin: 0 5px 5px 0;
display: inline-block;
}
.scenicRecommentList .dayNumber {
color: #2aaef2;
font-size: 18px;
font-weight: bold;
margin: 0 5px 5px 5px;
display: inline-block;
}
.scenicRecommentList .line {
float: left;
width: 1px;
height: 35px;
background-color: #ededed;
margin-top: 6px;
}
.scenicRecommentList .foodList {
display: inline-block;
padding: 1px 5px;
background-color: #ff9c00;
color: #fff;
margin-right: 6px;
border-radius: 2px;
}
.scenicRecommentList .foodList:last-child {
margin-right: 0;
}
.scenicRecommentList .delScien {
position: absolute;
right: 10px;
top: 10px;
display: none;
}
.scenicRecommentList .delScien:hover {
color: #f76f6f;
cursor: pointer;
}
.scenicRecommentList .resourceList:hover .delScien {
display: block;
}
.scenicRecommentList .comCursorUrl {
cursor: pointer;
}
.scenicRecommentList .ql-container{
min-height: 150px;
}
.scenicRecommentList .el-upload-dragger {
font-size: 28px;
color: #8c939d;
width: 126px;
height: 80px;
line-height: 41px;
text-align: center;
}
.scenicRecommentList .ql-editor{
min-height: 150px;
}
/* 景区推荐列表 */
</style>
<template>
<div class="flexOne scenicRecommentList">
<div class="query-box">
<ul>
<li>
<span class="hotel_name">
<em>名称</em>
<el-input maxlength="50" @keyup.native.enter="resetPageIndex(),getList()" v-model="msg.Name">
</el-input>
</span>
</li>
<li>
<button class="hollowFixedBtn" type="button"
@click="resetPageIndex(),getList()">{{$t('pub.searchBtn')}}</button>
<button class="normalBtn" type="button"
@click="outerVisible=true">{{$t('pub.addBtn')}}</button>
</li>
</ul>
</div>
<div class="hotelResource clearfix" v-loading="loading">
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th>
编号
</th>
<th>
名称
</th>
<th>
封面
</th>
<th>
操作人
</th>
<th>
操作时间
</th>
<th>
操作
</th>
</tr>
<tr v-for="(item,index) in DataList" :key="index">
<td>
{{item.Id}}
</td>
<td>
{{item.Name}}
</td>
<td>
{{item.ImgCover}}
</td>
<td>
{{item.UpdateName}}
</td>
<td>
{{item.UpdateTimeStr}}
</td>
<td>
<el-tooltip class="item" effect="dark" content="修改" placement="top">
<el-button
type="primary"
icon="el-icon-edit"
circle
@click="UpdateScenic(item.Id)"
></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top">
<el-button
type="danger"
icon="iconfont icon-img_delete_small"
circle
@click="removeScenicRecomment(item.Id)"
></el-button>
</el-tooltip>
</td>
</tr>
</table>
</div>
<el-dialog
custom-class="w800"
title="新增"
:visible.sync="outerVisible"
center
:before-close="closeChangeMachie"
>
<el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="80px">
<el-form-item label="名称" prop="Name">
<el-input v-model="addMsg.Name" class="w217"/>
</el-form-item>
<el-form-item label="封面图">
<div class="_addUpload_box">
<div class="_pic_upload">
<template v-if="addMsg.ImgCover!==''">
<div>
<div
style="width:125px;height:80px;overflow: hidden;display: flex;align-items: center;"
>
<img :src="addMsg.ImgCover">
</div>
<div
style="font-size:12px; color:#666666;cursor: pointer;line-height: 20px;"
@click="addMsg.ImgCover=''"
>重新上传</div>
</div>
</template>
<el-upload
v-else
drag
:http-request="uploadFileBtn"
:multiple="false"
:show-file-list="false"
action
>
<i class="el-icon-plus avatar-uploader-icon"></i>
<div class="el-upload__text">{{$t("active.ld_djscwj")}}</div>
</el-upload>
</div>
</div>
</el-form-item>
<el-form-item label="内容" prop="lotteryRules">
<quill-editor class="w595" :options="editorOption" v-model="addMsg.Content"></quill-editor>
</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" @click="submitForm('addMsg')">{{$t('pub.saveBtn')}}</button>
</div>
</el-dialog>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage"
:page-size="msg.pageSize" layout="total,prev, pager, next, jumper" :total="msg.total"></el-pagination>
</div>
</template>
<script>
export default {
data() {
return {
countryList: "",
provinceList: "",
cityList: "",
DataList: "",
noData: false,
loading: true,
outerVisible:false,
defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"',
msg: {
pageIndex: 1,
pageSize: 14,
Name: "",
QCountry: 0,
QProvince: 0,
QCity: 0,
total: 0,
currentPage: 1,
Id: 0
},
addMsg:{
Id:0,
Name:'',
ImgCover:'',
Content:''
},
editorOption:{
modules:{
toolbar:[
['bold', 'italic', 'underline', 'strike'], // toggled buttons
['blockquote', 'code-block','align']
]
}
},
rules:{
Name: [{ required: true, message: '请输入名称', trigger: "change" }],
},
};
},
methods: {
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.selectResource();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.msg.currentPage = 1;
},
removeScenicRecomment(ID) {
var that = this;
that.Confirm(that.$t('tips.shifoushanchu'), function () {
that.apipost(
"ScenicRecomment_Post_RemoveScenicRecommentService", {
Id: ID
},
response => {
if (response.data.resultCode == 1) {
that.Success(that.$$t('tips.shanchuchenggong'));
that.getList();
} else {
that.Error(response.data.message);
}
},
null
);
});
},
getList() {
this.loading = true;
this.apipost(
"ScenicRecomment_Get_GetScenicRecommentPageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.msg.total = res.data.data.count;
this.noData = !this.msg.total > 0;
this.DataList = res.data.data.pageData;
}
},
null
);
},
uploadFileBtn(file){
//上传
if (file.file.size > 1024 * 1024 * 10) {
this.$message.warning(this.$t("tips.wjdxbncgsz"));
return;
}
// 1 文档 2 数据 3 图片
let typeArr = [{ stringArr: "GIF|JPG|JPEG|PNG|BMP", type: 3 }];
let ft = file.file.name
.substring(file.file.name.lastIndexOf(".") + 1, file.file.name.length)
.toUpperCase();
let fileTypeNumber = 2;
let typeOk = false;
typeArr.forEach(x => {
if (x.stringArr.indexOf(ft) != "-1") {
fileTypeNumber = x.type;
typeOk = true;
}
});
if (!typeOk) return this.Error(this.$t("tips.qsctpian"));
let newArr = [];
newArr.push(file.file);
let path = "/Upload/DMC/";
this.Success(this.$t("tips.shangchuanzhong"));
this.UploadSelfFileT(path, newArr, x => {
let fileSize =
file.file.size < 1024
? file.file.size
: (file.file.size / 1024).toFixed(0);
this.addMsg.ImgCover = this.domainManager().ViittoFileUrl + x.data.FilePath;
this.Success(this.$t("tips.scchenggong"));
this.$forceUpdate();
});
},
closeChangeMachie(done) {
//弹出框关闭初始化弹框内表单
done();
this.resetForm("addMsg");
},
submitForm(addMsg) {
//提交创建、修改表单
this.$refs[addMsg].validate(valid => {
if (valid) {
this.addScenic();
} else {
return false;
}
});
},
//新增
addScenic(){
this.apipost(
"ScenicRecomment_Post_SetScenicRecommentService",
this.addMsg,
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.getList();
}else{
this.Error(res.data.message);
}
},
null
);
},
//修改
UpdateScenic(id){
this.apipost(
"ScenicRecomment_Post_SetScenicRecommentService",
this.addMsg,
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.getList();
}else{
this.Error(res.data.message);
}
},
null
);
},
goUrl(path, id) {
this.$store.commit("pageConditionUpdate", this.msg);
this.$router.push({
path: path,
query: {
id: id,
blank: 'y',
tab: '修改景区信息'
}
});
},
goUrlT(path, id) {
this.$router.push({
path: path,
query: {
id: id,
blank: 'y',
tab: '门票管理'
}
});
}
},
mounted() {
//this.getCountryList();
},
created() {
if (this.$route.query.hasOwnProperty("cache")) {
if (this.$store.state.pageCondition != null) {
this.msg = this.$store.state.pageCondition;
}
}
var id = this.$route.query.ID;
if (id) {
this.msg.getList = id;
}
this.getList();
}
};
</script>
<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 { ...@@ -111,14 +111,14 @@ export default {
//域名管理对象 //域名管理对象
Vue.prototype.domainManager = function () { Vue.prototype.domainManager = function () {
let domainUrl = ''; let domainUrl = '';
domainUrl = "http://192.168.2.214:8082"; domainUrl = "http://127.0.0.1:8082";
let locationName = window.location.hostname; let locationName = window.location.hostname;
let javaUrldo=""; 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"; 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) { if (locationName.indexOf('testerp.oytour') !== -1) {
domainUrl = "http://testapi.oytour.com"; domainUrl = "http://127.0.0.1:8082";
} }
else if (locationName.indexOf('oytour') !== -1) { else if (locationName.indexOf('oytour') !== -1) {
domainUrl = "http://reborn.oytour.com"; domainUrl = "http://reborn.oytour.com";
......
...@@ -1413,7 +1413,16 @@ export default { ...@@ -1413,7 +1413,16 @@ export default {
meta: { meta: {
title: '景区票券列表' title: '景区票券列表'
}, },
}, { },
, {
path: '/scenicRecommentList', //景点攻略
name: 'scenicRecommentList',
component: resolve => require(['@/components/scenicSpot/scenicRecommentList'], resolve),
meta: {
title: '景点攻略'
},
},
{
path: '/scenicSpotSupplier', //景区票券供应商 path: '/scenicSpotSupplier', //景区票券供应商
name: 'scenicSpotSupplier', name: 'scenicSpotSupplier',
component: resolve => require(['@/components/scenicSpot/scenicSpotSupplier'], resolve), component: resolve => require(['@/components/scenicSpot/scenicSpotSupplier'], resolve),
...@@ -4264,7 +4273,30 @@ export default { ...@@ -4264,7 +4273,30 @@ export default {
title: '票务规则配置' 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