1. 样式修改 2.详情加载修改 3. 首页修改

main
赵培友 3 years ago
parent ad001b4747
commit 7200aa4a82
  1. 2
      src/const/workflow/implementation.js
  2. 167
      src/views/maintenance/database1.vue
  3. 144
      src/views/maintenance/system.vue
  4. 161
      src/views/maintenance/task.vue
  5. 117
      src/views/plugin/workflow/process/components/detail.vue
  6. 8
      src/views/plugin/workflow/process/components/form.vue
  7. 232
      src/views/plugin/workflow/process/crontab.vue
  8. 256
      src/views/plugin/workflow/process/implementation.vue
  9. 33
      src/views/plugin/workflow/process/todo.vue
  10. 314
      src/views/plugin/workflow/process/workorder.vue
  11. 13
      src/views/wel/index.vue

@ -66,7 +66,7 @@ export const tableOption = {
}, },
{ {
type: "input", type: "input",
label: "审批状态", label: "状态",
prop: "isFinish", prop: "isFinish",
align: "left", align: "left",
overHidden: true, overHidden: true,

@ -2,84 +2,85 @@
<div class="cus-container"> <div class="cus-container">
<el-form :model="searchForm"> <el-form :model="searchForm">
<div class="search"> <div class="search">
<div > <el-select
<el-select v-model="searchForm.dataBaseName"
v-model="searchForm.dataBaseName" placeholder="数据库实例"
placeholder="数据库实例" class="search-select"
class="search-select" >
<el-option
v-for="item in dataBaseNamesList"
:key="item.dataBaseName"
:label="item.dataBaseName"
:value="item.dataBaseName"
> >
<el-option </el-option>
v-for="item in dataBaseNamesList" </el-select>
:key="item.dataBaseName" <el-select
:label="item.dataBaseName" v-model="searchForm.dataBaseType"
:value="item.dataBaseName" placeholder="数据库类型"
> class="search-select"
</el-option> >
</el-select> <el-option
<el-select v-for="item in databaseTypeList"
v-model="searchForm.dataBaseType" :key="item.dictKey"
placeholder="数据库类型" :label="item.dictValue"
class="search-select" :value="item.dictKey"
> >
<el-option </el-option>
v-for="item in databaseTypeList" </el-select>
:key="item.dictKey" <el-select
:label="item.dictValue" v-model="searchForm.company"
:value="item.dictKey" placeholder="运维公司"
> class="search-select"
</el-option> >
</el-select> <el-option
<el-select v-for="item in companysList"
v-model="searchForm.company" :key="item.id"
placeholder="运维公司" :label="item.name"
class="search-select" :value="item.id"
> >
<el-option </el-option>
v-for="item in companysList" </el-select>
:key="item.id" <el-select
:label="item.name" v-model="searchForm.deptId"
:value="item.id" placeholder="管理部门"
> class="search-select"
</el-option> >
</el-select> <el-option
<el-select v-for="item in deptsList"
v-model="searchForm.deptId" :key="item.id"
placeholder="管理部门" :label="item.deptName"
class="search-select" :value="item.id"
> >
<el-option </el-option>
v-for="item in deptsList" </el-select>
:key="item.id" <div style="margin-left:auto;">
:label="item.deptName" <el-button class="search-btn" @click="searchHandle(1)">查询</el-button>
:value="item.id" <el-button
> class="search-btn"
</el-option> @click="searchHandle(2)"
</el-select> style="background: #ff9130"
<el-button class="search-btn" @click="searchHandle(1)" >重置</el-button
>查询</el-button >
>
<div class="search-reset" @click="searchHandle(2)"> <el-button class="search-btn" @click="download">下载模板</el-button>
<i class="el-icon-refresh-right" style="font-size: 20px"></i> <el-upload
</div> style="display:inline-block;"
</div> accept=".xls,.xlsx"
<div style="display: flex"> class="upload-demo"
<el-button class="search-btn" @click="download">下载模板</el-button> :show-file-list="false"
<el-upload :headers="headers"
accept=".xls,.xlsx" action="/api/blade-workflow/database/dataImport"
class="upload-demo" :on-success="handleSuccess"
:show-file-list="false" >
:headers="headers" <el-button class="search-btn" style="background: #2ee27c"
action="/api/blade-workflow/database/dataImport" >导入</el-button
:on-success="handleSuccess"
> >
<el-button class="search-btn" style="margin: 0; background: #2ee27c" </el-upload>
>导入</el-button </div>
>
</el-upload>
</div>
</div> </div>
</el-form> </el-form>
<div style="margin-top: 30px"> <div style="margin-top: 15px">
<avue-crud <avue-crud
id="avue-id" id="avue-id"
ref="crud" ref="crud"
@ -167,7 +168,11 @@ export default {
onLoad() { onLoad() {
this.loading = true; this.loading = true;
const { currentPage, pageSize } = this.page; const { currentPage, pageSize } = this.page;
getList({ current:currentPage, size:pageSize, ...this.searchForm }).then((res) => { getList({
current: currentPage,
size: pageSize,
...this.searchForm,
}).then((res) => {
const { total, records } = res.data.data; const { total, records } = res.data.data;
this.page.total = total; this.page.total = total;
this.tableData = records; this.tableData = records;
@ -219,33 +224,23 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.search { .search {
display: flex; display: flex;
justify-content: space-between;
flex-wrap: wrap; flex-wrap: wrap;
} }
.search-select { .search-select {
width: 150px; width: 150px;
margin-right: 20px; margin-right: 20px;
margin-bottom: 15px;
margin-bottom: 15px;
} }
.search-input { .search-input {
width: 288px; width: 288px;
} }
.search-btn { .search-btn {
width: 130px; width: 100px;
height: 46px !important; height: 46px !important;
background: #2e92f6; background: #2e92f6;
color: #fff; color: #fff;
margin: 0 20px; margin-left: 20px;
}
.search-reset {
display: inline-block;
width: 46px;
height: 44px !important;
background: #ff9130;
margin-left: 0px;
color: #fff;
text-align: center;
line-height: 46px;
cursor: pointer;
} }
/deep/ .el-input__inner { /deep/ .el-input__inner {
height: 46px; height: 46px;

@ -2,75 +2,78 @@
<div class="cus-container"> <div class="cus-container">
<el-form :model="searchForm"> <el-form :model="searchForm">
<div class="search"> <div class="search">
<div> <el-select
<el-select v-model="searchForm.projectInfoId"
v-model="searchForm.projectInfoId" placeholder="系统名称"
placeholder="系统名称" class="search-select"
class="search-select" >
<el-option
v-for="item in projectList"
:key="item.id"
:label="item.projectName"
:value="item.id"
> >
<el-option </el-option>
v-for="item in projectList" </el-select>
:key="item.id" <el-select
:label="item.projectName" v-model="searchForm.moduleName"
:value="item.id" placeholder="模块名称"
> class="search-select"
</el-option> >
</el-select> <el-option
<el-select v-for="item in moduleNamesList"
v-model="searchForm.moduleName" :key="item.moduleName"
placeholder="模块名称" :label="item.moduleName"
class="search-select" :value="item.moduleName"
> >
<el-option </el-option>
v-for="item in moduleNamesList" </el-select>
:key="item.moduleName" <el-select
:label="item.moduleName" v-model="searchForm.manageDeptId"
:value="item.moduleName" placeholder="管理部门"
> class="search-select"
</el-option> >
</el-select> <el-option
<el-select v-for="item in deptsList"
v-model="searchForm.manageDeptId" :key="item.id"
placeholder="管理部门" :label="item.deptName"
class="search-select" :value="item.id"
> >
<el-option </el-option>
v-for="item in deptsList" </el-select>
:key="item.id" <el-select
:label="item.deptName" v-model="searchForm.maintenanceDeptId"
:value="item.id" placeholder="运维公司"
> class="search-select"
</el-option> >
</el-select> <el-option
<el-select v-for="item in usersList"
v-model="searchForm.maintenanceDeptId" :key="item.id"
placeholder="运维公司" :label="item.name"
class="search-select" :value="item.id"
> >
<el-option </el-option>
v-for="item in usersList" </el-select>
:key="item.id" <div style="margin-left:auto;">
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
<el-button class="search-btn" @click="searchHandle(1)" <el-button class="search-btn" @click="searchHandle(1)"
>查询</el-button >查询</el-button
> >
<div class="search-reset" @click="searchHandle(2)"> <el-button
<i class="el-icon-refresh-right" style="font-size: 20px"></i>
</div>
</div>
<el-button
class="search-btn" class="search-btn"
style="margin: 0; background: #2ee27c;" @click="searchHandle(2)"
style="margin-left: 20px;margin-right:10px; background: #ff9130"
>重置</el-button
>
<el-button
class="search-btn"
style="background: #2ee27c"
@click="addHandle" @click="addHandle"
>新增</el-button >新增</el-button
> >
</div>
</div> </div>
</el-form> </el-form>
<div style="margin-top: 30px"> <div style="margin-top: 15px">
<avue-crud <avue-crud
id="avue-id" id="avue-id"
ref="crud" ref="crud"
@ -166,7 +169,11 @@ export default {
onLoad() { onLoad() {
this.loading = true; this.loading = true;
const { currentPage, pageSize } = this.page; const { currentPage, pageSize } = this.page;
getList({ current:currentPage, size:pageSize, ...this.searchForm }).then((res) => { getList({
current: currentPage,
size: pageSize,
...this.searchForm,
}).then((res) => {
const { total, records } = res.data.data; const { total, records } = res.data.data;
this.page.total = total; this.page.total = total;
this.tableData = records; this.tableData = records;
@ -263,35 +270,22 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search { .search {
display:flex; display: flex;
justify-content: space-between;
flex-wrap: wrap; flex-wrap: wrap;
} }
.search-select { .search-select {
width: 150px; width: 150px;
margin-right: 20px; margin-right: 20px;
margin-bottom: 15px;
} }
.search-input {
width: 288px;
}
.search-btn { .search-btn {
width: 130px; width: 100px;
height: 46px !important; height: 46px !important;
background: #2e92f6; background: #2e92f6;
color: #fff; color: #fff;
margin: 0 20px;
}
.search-reset {
display:inline-block;
width: 46px;
height: 44px !important;
background: #ff9130;
margin-left: 0px;
color: #fff;
text-align: center;
line-height: 46px;
cursor: pointer;
} }
/deep/ .el-input__inner { /deep/ .el-input__inner {
height: 46px; height: 46px;
} }

@ -2,78 +2,81 @@
<div class="cus-container"> <div class="cus-container">
<el-form :model="searchForm"> <el-form :model="searchForm">
<div class="search"> <div class="search">
<div > <el-select
<el-select v-model="searchForm.taskParentId"
v-model="searchForm.taskParentId" placeholder="任务父类"
placeholder="任务父类" class="search-select"
class="search-select" >
<el-option
v-for="item in parentList"
:key="item.id"
:label="item.dictValue"
:value="item.id"
> >
<el-option </el-option>
v-for="item in parentList" </el-select>
:key="item.id" <el-select
:label="item.dictValue" v-model="searchForm.taskTypeName"
:value="item.id" placeholder="任务种类"
> class="search-select"
</el-option> >
</el-select> <el-option
<el-select v-for="item in taskTypeList"
v-model="searchForm.taskTypeName" :key="item.taskTypeName"
placeholder="任务种类" :label="item.taskTypeName"
class="search-select" :value="item.taskTypeName"
> >
<el-option </el-option>
v-for="item in taskTypeList" </el-select>
:key="item.taskTypeName" <el-select
:label="item.taskTypeName" v-model="searchForm.taskLevel"
:value="item.taskTypeName" placeholder="任务等级"
> class="search-select"
</el-option> >
</el-select> <el-option
<el-select v-for="item in levelList"
v-model="searchForm.taskLevel" :key="item.id"
placeholder="任务等级" :label="item.dictValue"
class="search-select" :value="item.id"
> >
<el-option </el-option>
v-for="item in levelList" </el-select>
:key="item.id" <el-date-picker
:label="item.dictValue" style="width: 314px; margin-right: 20px;margin-bottom:15px;"
:value="item.id" v-model="searchForm.timeArr"
> format="yyyy-MM-dd HH:mm"
</el-option> value-format="yyyy-MM-dd HH:mm:ss"
</el-select> class="search-picker"
<el-date-picker type="datetimerange"
style="width: 314px; margin-right: 20px" range-separator="至"
v-model="searchForm.timeArr" start-placeholder="开始日期"
format="yyyy-MM-dd HH:mm" end-placeholder="结束日期"
value-format="yyyy-MM-dd HH:mm:ss" ></el-date-picker>
class="search-picker" <el-input
type="datetimerange" v-model="searchForm.createUserName"
range-separator="至" placeholder="请输入创建人"
start-placeholder="开始日期" class="search-input"
end-placeholder="结束日期" ></el-input>
></el-date-picker> <div style="margin-left: auto">
<el-input
v-model="searchForm.createUserName"
placeholder="请输入创建人"
class="search-input"
></el-input>
<el-button class="search-btn" @click="searchHandle(1)" <el-button class="search-btn" @click="searchHandle(1)"
>查询</el-button >查询</el-button
> >
<div class="search-reset" @click="searchHandle(2)"> <el-button
<i class="el-icon-refresh-right" style="font-size: 20px"></i> class="search-btn"
</div> @click="searchHandle(2)"
style="background: #ff9130"
>重置</el-button
>
<el-button
class="search-btn"
style="background: #2ee27c"
@click="addHandle"
>新增</el-button
>
</div> </div>
<el-button
class="search-btn"
style="margin: 0; background: #2ee27c;"
@click="addHandle"
>新增</el-button
>
</div> </div>
</el-form> </el-form>
<div style="margin-top: 30px"> <div style="margin-top: 15px">
<avue-crud <avue-crud
id="avue-id" id="avue-id"
ref="crud" ref="crud"
@ -176,12 +179,14 @@ export default {
startTime, startTime,
endTime, endTime,
}; };
getList({ current:currentPage, size:pageSize, ...params }).then((res) => { getList({ current: currentPage, size: pageSize, ...params }).then(
const { total, records } = res.data.data; (res) => {
this.page.total = total; const { total, records } = res.data.data;
this.tableData = records; this.page.total = total;
this.loading = false; this.tableData = records;
}); this.loading = false;
}
);
}, },
// //
currentChange(currentPage) { currentChange(currentPage) {
@ -268,33 +273,23 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.search { .search {
display: flex; display: flex;
justify-content: space-between;
flex-wrap: wrap; flex-wrap: wrap;
} }
.search-select { .search-select {
width: 150px; width: 150px;
margin-right: 20px; margin-right: 20px;
margin-bottom: 15px;
} }
.search-input { .search-input {
width: 288px; width: 288px;
margin-bottom: 15px;
} }
.search-btn { .search-btn {
width: 130px; width: 100px;
height: 46px !important; height: 46px !important;
background: #2e92f6; background: #2e92f6;
color: #fff; color: #fff;
margin-left: 40px; margin-left: 20px;
margin-right: 20px;
}
.search-reset {
display: inline-block;
width: 46px;
height: 44px !important;
background: #ff9130;
color: #fff;
text-align: center;
line-height: 46px;
cursor: pointer;
} }
/deep/ .el-input__inner { /deep/ .el-input__inner {
height: 46px; height: 46px;

@ -33,7 +33,7 @@
:upload-preview="handleUploadPreview" :upload-preview="handleUploadPreview"
> >
<template slot="uploadrecord"> <template slot="uploadrecord">
<el-table <el-table
v-if="form.uploadrecord && form.uploadrecord.length > 0" v-if="form.uploadrecord && form.uploadrecord.length > 0"
:data="form.uploadrecord" :data="form.uploadrecord"
style="width: 100%" style="width: 100%"
@ -76,23 +76,22 @@
</div> </div>
</el-card> </el-card>
<!-- 控制 运维公司收到任务 只输入通过 --> <!-- 控制 运维公司收到任务 只输入通过 -->
<div :style="{display:yibanTask?'block':'none'}"> <div :style="{ display: yibanTask ? 'block' : 'none' }">
<el-card <el-card
shadow="never" shadow="never"
style="margin-top: 20px" style="margin-top: 20px"
v-if="process.status == 'todo'" v-if="process.status == 'todo'"
> >
<wf-examine-form <wf-examine-form
:renwudengji="form.renwudengji" :renwudengji="form.renwudengji"
ref="examineForm" ref="examineForm"
:comment.sync="comment" :comment.sync="comment"
:process="process" :process="process"
@user-select="handleUserSelect" @user-select="handleUserSelect"
@uploadSuccess="uploadSuccess" @uploadSuccess="uploadSuccess"
></wf-examine-form> ></wf-examine-form>
</el-card> </el-card>
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="流转信息" name="second"> <el-tab-pane label="流转信息" name="second">
<el-card shadow="never" style="margin-top: 5px"> <el-card shadow="never" style="margin-top: 5px">
@ -229,7 +228,7 @@ export default {
}, },
// //
getDetail(taskId, processInsId) { getDetail(taskId, processInsId) {
this.getTaskDetail(taskId, processInsId).then((res) => { this.getTaskDetail(taskId, processInsId).then(async (res) => {
const { process, form } = res; const { process, form } = res;
const { variables, status } = process; const { variables, status } = process;
@ -277,57 +276,57 @@ export default {
detail: true, detail: true,
}); });
} }
this.option = option;
this.vars = vars;
// //
const { yunweigongsi, renwufulei, xitongmingchengshujuku } = const { yunweigongsi, renwufulei, xitongmingchengshujuku } =
variables; variables;
getCompany().then((res) => { //
const yunweigongsi = this.findObject(option.column, "yunweigongsi"); const companyData = await getCompany();
yunweigongsi.dicData = res.data.data; let ywgs = this.findObject(option.column, "yunweigongsi");
}); ywgs.dicData = companyData.data.data;
getDepts({ id: yunweigongsi }).then((res) => { //
const guanlibumen = this.findObject(option.column, "guanlibumen"); const deptDate = await getDepts({ id: yunweigongsi });
guanlibumen.dicData = res.data.data; const guanlibumen = this.findObject(option.column, "guanlibumen");
}); guanlibumen.dicData = deptDate.data.data;
getTaskParent().then((res) => { //
const renwufulei = this.findObject(option.column, "renwufulei"); const taskParent = await getTaskParent();
renwufulei.dicData = res.data.data; const rwfl = this.findObject(option.column, "renwufulei");
rwfl.dicData = taskParent.data.data;
//
const taskTypeData = await getTaskTypeData({ parentId: renwufulei });
const renwuzhonglei = this.findObject(
this.option.column,
"renwuzhonglei"
);
renwuzhonglei.dicData = taskTypeData.data.data;
//
const taskAndDataBaseData = await getTaskAndDataBase({
id: yunweigongsi,
}); });
getTaskTypeData({ parentId: renwufulei }).then((res) => { let datasql = this.findObject(
const renwuzhonglei = this.findObject( this.option.column,
this.option.column, "xitongmingchengshujuku"
"renwuzhonglei" );
); datasql.dicData = taskAndDataBaseData.data.data;
renwuzhonglei.dicData = res.data.data; //
let obj = taskAndDataBaseData.data.data.find(function (i) {
return i.id === xitongmingchengshujuku;
}); });
getTaskAndDataBase({ id: yunweigongsi }).then((res) => { const moduleAndDataTableData = await getModuleAndDataTable({
const datasql = this.findObject( id: obj.id,
this.option.column, type: obj.type,
"xitongmingchengshujuku"
);
datasql.dicData = res.data.data;
let obj = res.data.data.find(function (i) {
return i.id === xitongmingchengshujuku;
});
getModuleAndDataTable({ id: obj.id, type: obj.type }).then(
(res2) => {
console.log("res", res);
const xitongmokuaishujubiao = this.findObject(
this.option.column,
"xitongmokuaishujubiao"
);
xitongmokuaishujubiao.dicData = res2.data.data;
}
);
}); });
let xitongmokuaishujubiao = this.findObject(
this.option = option; this.option.column,
this.vars = vars; "xitongmokuaishujubiao"
);
xitongmokuaishujubiao.dicData = moduleAndDataTableData.data.data;
} }
this.form = variables;
setTimeout(() => { setTimeout(() => {
this.form = variables;
this.waiting = false; this.waiting = false;
}, 10); }, 100);
}); });
}, },
handleResolveOption(option, taskForm, status) { handleResolveOption(option, taskForm, status) {

@ -270,10 +270,9 @@ export default {
return i.id === id; return i.id === id;
}); });
getDepts({ id: obj.deptId }).then((res) => { getDepts({ id: obj.deptId }).then((res) => {
const guanlibumen = this.findObject(this.option.column, "guanlibumen"); // const guanlibumen = this.findObject(this.option.column, "guanlibumen");
this.$nextTick(() => { const guanlibumen = this.option.column[1];
guanlibumen.dicData = res.data.data; guanlibumen.dicData = res.data.data;
});
}); });
getTaskAndDataBase({ id }).then((res) => { getTaskAndDataBase({ id }).then((res) => {
this.taskAndDataBaseList = res.data.data; this.taskAndDataBaseList = res.data.data;
@ -284,7 +283,6 @@ export default {
getTaskTypeData({ parentId: id }).then((res) => { getTaskTypeData({ parentId: id }).then((res) => {
this.form.renwuzhonglei = ""; this.form.renwuzhonglei = "";
this.form.renwudengji = ""; this.form.renwudengji = "";
console.log(this.option);
const renwuzhonglei = this.option.column[3]; const renwuzhonglei = this.option.column[3];
renwuzhonglei.dicData = res.data.data; renwuzhonglei.dicData = res.data.data;
}); });

@ -2,97 +2,102 @@
<div class="cus-container"> <div class="cus-container">
<el-form :model="searchForm"> <el-form :model="searchForm">
<div class="search"> <div class="search">
<el-select <el-select
v-model="searchForm.taskParent" v-model="searchForm.taskParent"
placeholder="任务父类" placeholder="任务父类"
class="search-select" class="search-select"
clearable clearable
>
<el-option
v-for="item in taskParent"
:key="item.id"
:label="item.dictValue"
:value="item.id"
> >
<el-option </el-option>
v-for="item in taskParent" </el-select>
:key="item.id" <el-select
:label="item.dictValue" v-model="searchForm.taskType"
:value="item.id" placeholder="任务种类"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.taskType" v-for="item in taskInfos"
placeholder="任务种类" :key="item.id"
class="search-select" :label="item.taskTypeName"
clearable :value="item.id"
> >
<el-option </el-option>
v-for="item in taskInfos" </el-select>
:key="item.id" <el-select
:label="item.taskTypeName" v-model="searchForm.applyUser"
:value="item.id" placeholder="发起人"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.applyUser" v-for="item in users"
placeholder="发起人" :key="item.id"
class="search-select" :label="item.realName"
clearable :value="item.id"
> >
<el-option </el-option>
v-for="item in users" </el-select>
:key="item.id" <el-select
:label="item.realName" v-model="searchForm.maintenanceCompany"
:value="item.id" placeholder="运维公司"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.maintenanceCompany" v-for="item in users"
placeholder="运维公司" :key="item.id"
class="search-select" :label="item.realName"
clearable :value="item.id"
> >
<el-option </el-option>
v-for="item in users" </el-select>
:key="item.id" <el-select
:label="item.realName" v-model="searchForm.repeatMode"
:value="item.id" placeholder="重复模式"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.repeatMode" v-for="item in repeatModeList"
placeholder="重复模式" :key="item.id"
class="search-select" :label="item.dictValue"
clearable :value="item.id"
> >
<el-option </el-option>
v-for="item in repeatModeList" </el-select>
:key="item.id"
:label="item.dictValue" <el-date-picker
:value="item.id" style="width: 314px"
> v-model="searchForm.timeArr"
</el-option> format="yyyy-MM-dd HH:mm"
</el-select> value-format="yyyy-MM-dd HH:mm:ss"
class="search-picker"
<el-date-picker type="datetimerange"
style="width: 314px; margin-right: 20px" range-separator="至"
v-model="searchForm.timeArr" start-placeholder="创建开始日期"
format="yyyy-MM-dd HH:mm" end-placeholder="创建结束日期"
value-format="yyyy-MM-dd HH:mm:ss" ></el-date-picker>
class="search-picker" <div style="margin-left: auto">
type="datetimerange"
range-separator="至"
start-placeholder="创建开始日期"
end-placeholder="创建结束日期"
></el-date-picker>
<el-button class="search-btn" @click="searchHandle(1)" <el-button class="search-btn" @click="searchHandle(1)"
>查询</el-button >查询</el-button
> >
<div class="search-reset" @click="searchHandle(2)"> <el-button
<i class="el-icon-refresh-right" style="font-size: 20px"></i> class="search-btn"
@click="searchHandle(2)"
style="margin-left: 20px; background: #ff9130"
>重置</el-button
>
</div> </div>
</div> </div>
</el-form> </el-form>
<div style="margin-top: 30px"> <div style="margin-top: 15px">
<avue-crud <avue-crud
id="avue-id" id="avue-id"
ref="crud" ref="crud"
@ -104,18 +109,14 @@
@size-change="sizeChange" @size-change="sizeChange"
> >
<template slot="menu" slot-scope="{ row }"> <template slot="menu" slot-scope="{ row }">
<el-button @click="dynamicRoute(row, 'detail')">详情</el-button>
<el-button <el-button
@click="dynamicRoute(row, 'detail')"
>详情</el-button
>
<el-button
v-if="row.isBreak === 0" v-if="row.isBreak === 0"
type="danger" type="danger"
@click="stopHandle(row)" @click="stopHandle(row)"
>终止</el-button >终止</el-button
> >
</template> </template>
</avue-crud> </avue-crud>
</div> </div>
</div> </div>
@ -125,7 +126,7 @@ import {
taskList as getList, taskList as getList,
conditionalData, conditionalData,
taskRemove, taskRemove,
repeatMode repeatMode,
} from "@/api/plugin/workflow/workorder.js"; } from "@/api/plugin/workflow/workorder.js";
import { tableOption } from "@/const/workflow/crontab.js"; import { tableOption } from "@/const/workflow/crontab.js";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
@ -161,16 +162,17 @@ export default {
methods: { methods: {
dictBiz() { dictBiz() {
conditionalData().then((res) => { conditionalData().then((res) => {
const { taskParent, taskInfos, depts, users, taskLevel } = res.data.data; const { taskParent, taskInfos, depts, users, taskLevel } =
res.data.data;
this.taskParent = taskParent; this.taskParent = taskParent;
this.taskInfos = taskInfos; this.taskInfos = taskInfos;
this.depts = depts; this.depts = depts;
this.users = users; this.users = users;
this.taskLevel = taskLevel this.taskLevel = taskLevel;
});
repeatMode().then((res) => {
this.repeatModeList = res.data.data;
}); });
repeatMode().then(res => {
this.repeatModeList = res.data.data
})
}, },
// //
onLoad() { onLoad() {
@ -183,7 +185,11 @@ export default {
this.searchForm.startTime = this.searchForm.timeArr[0]; this.searchForm.startTime = this.searchForm.timeArr[0];
this.searchForm.endTime = this.searchForm.timeArr[1]; this.searchForm.endTime = this.searchForm.timeArr[1];
} }
getList({ current:currentPage, size:pageSize,...this.searchForm }).then((res) => { getList({
current: currentPage,
size: pageSize,
...this.searchForm,
}).then((res) => {
const { total, records } = res.data.data; const { total, records } = res.data.data;
this.page.total = total; this.page.total = total;
this.tableData = records; this.tableData = records;
@ -211,13 +217,17 @@ export default {
}, },
// //
stopHandle(row) { stopHandle(row) {
this.$confirm("此操作会终止该条重复任务,且无法恢复,确定停止吗?", "提示", { this.$confirm(
confirmButtonText: "确定", "此操作会终止该条重复任务,且无法恢复,确定停止吗?",
cancelButtonText: "取消", "提示",
type: "warning", {
}) confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => { .then(() => {
taskRemove({ids: row.id}).then((res) => { taskRemove({ ids: row.id }).then((res) => {
this.$message.success("任务终止成功!"); this.$message.success("任务终止成功!");
this.onLoad(); this.onLoad();
}); });
@ -225,39 +235,27 @@ export default {
.catch(() => { .catch(() => {
// this.$message({ type: "info", message: "" }); // this.$message({ type: "info", message: "" });
}); });
} },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search-line { .search {
margin-top: 20px;
display: flex; display: flex;
justify-content: space-between; flex-wrap: wrap;
width: 100%;
} }
.search-select { .search-select {
width: 150px; width: 150px;
margin-right: 20px; margin-right: 20px;
margin-bottom: 15px;
} }
.search-input {
width: 288px;
}
.search-btn { .search-btn {
width: 130px; width: 100px;
height: 46px !important; height: 46px !important;
background: #2e92f6; background: #2e92f6;
color: #fff; color: #fff;
margin: 0 20px;
}
.search-reset {
display: inline-block;
width: 46px;
height: 44px !important;
background: #ff9130;
color: #fff;
text-align: center;
line-height: 46px;
cursor: pointer;
} }
/deep/ .el-input__inner { /deep/ .el-input__inner {
height: 46px; height: 46px;

@ -2,126 +2,114 @@
<div class="cus-container"> <div class="cus-container">
<el-form :model="searchForm"> <el-form :model="searchForm">
<div class="search"> <div class="search">
<div> <el-select
<el-select v-model="searchForm.taskParent"
v-model="searchForm.taskParent" placeholder="任务父类"
placeholder="任务父类" class="search-select"
class="search-select" clearable
clearable >
<el-option
v-for="item in taskParent"
:key="item.id"
:label="item.dictValue"
:value="item.id"
> >
<el-option </el-option>
v-for="item in taskParent" </el-select>
:key="item.id" <el-select
:label="item.dictValue" v-model="searchForm.taskType"
:value="item.id" placeholder="任务种类"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.taskType" v-for="item in taskInfos"
placeholder="任务种类" :key="item.id"
class="search-select" :label="item.taskTypeName"
clearable :value="item.id"
> >
<el-option </el-option>
v-for="item in taskInfos" </el-select>
:key="item.id" <el-select
:label="item.taskTypeName" v-model="searchForm.management"
:value="item.id" placeholder="管理部门"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.management" v-for="item in depts"
placeholder="管理部门" :key="item.id"
class="search-select" :label="item.deptName"
clearable :value="item.id"
> >
<el-option </el-option>
v-for="item in depts" </el-select>
:key="item.id" <el-select
:label="item.deptName" v-model="searchForm.taskLevel"
:value="item.id" placeholder="任务级别"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.taskLevel" v-for="item in taskLevel"
placeholder="任务级别" :key="item.id"
class="search-select" :label="item.dictValue"
clearable :value="item.id"
> >
<el-option </el-option>
v-for="item in taskLevel" </el-select>
:key="item.id" <el-select
:label="item.dictValue" v-model="searchForm.isFinish"
:value="item.id" placeholder="状态"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.isFinish" v-for="item in statusList"
placeholder="状态" :key="item.value"
class="search-select" :label="item.label"
clearable :value="item.value"
> >
<el-option </el-option>
v-for="item in statusList" </el-select>
:key="item.value" <el-select
:label="item.label" v-model="searchForm.applyUser"
:value="item.value" placeholder="发起人"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.applyUser" v-for="item in users"
placeholder="发起人" :key="item.id"
class="search-select" :label="item.realName"
clearable :value="item.id"
>
</el-option>
</el-select>
<el-date-picker
style="width: 398px; "
v-model="searchForm.timeArr"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss"
class="search-picker"
type="datetimerange"
range-separator="至"
start-placeholder="创建日期"
end-placeholder="结束日期"
></el-date-picker>
<div style="margin-left: auto">
<el-button class="search-btn" @click="searchHandle(1)"
>查询</el-button
>
<el-button
class="search-btn"
@click="searchHandle(2)"
style="background: #ff9130"
>重置</el-button
> >
<el-option
v-for="item in users"
:key="item.id"
:label="item.realName"
:value="item.id"
>
</el-option>
</el-select>
<el-date-picker
style="width: 314px; margin-right: 20px"
v-model="searchForm.timeArr"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss"
class="search-picker"
type="datetimerange"
range-separator="至"
start-placeholder="创建开始日期"
end-placeholder="创建结束日期"
></el-date-picker>
</div>
<div class="search-line">
<div style="display: flex">
<el-date-picker
style="width: 314px; margin-right: 20px"
v-model="searchForm.timeArr2"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss"
class="search-picker"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-button class="search-btn" @click="searchHandle(1)"
>查询</el-button
>
<div class="search-reset" @click="searchHandle(2)">
<i class="el-icon-refresh-right" style="font-size: 20px"></i>
</div>
</div>
<el-button <el-button
class="search-btn" class="search-btn"
style="margin: 0; background: #2ee27c" style="background: #2ee27c;"
@click="exportHandle" @click="exportHandle"
>导出</el-button >导出</el-button
> >
@ -220,13 +208,6 @@ export default {
this.searchForm.startTime = this.searchForm.timeArr[0]; this.searchForm.startTime = this.searchForm.timeArr[0];
this.searchForm.endTime = this.searchForm.timeArr[1]; this.searchForm.endTime = this.searchForm.timeArr[1];
} }
if (
this.searchForm.timeArr2 !== null &&
this.searchForm.timeArr2 !== undefined
) {
this.searchForm.startTime2 = this.searchForm.timeArr2[0];
this.searchForm.endTime2 = this.searchForm.timeArr2[1];
}
getList({ getList({
current: currentPage, current: currentPage,
size: pageSize, size: pageSize,
@ -253,7 +234,6 @@ export default {
if (index === 2) { if (index === 2) {
this.searchForm = { this.searchForm = {
timeArr: null, timeArr: null,
timeArr2: null,
}; };
} }
this.onLoad(); this.onLoad();
@ -267,13 +247,6 @@ export default {
this.searchForm.startTime = this.searchForm.timeArr[0]; this.searchForm.startTime = this.searchForm.timeArr[0];
this.searchForm.endTime = this.searchForm.timeArr[1]; this.searchForm.endTime = this.searchForm.timeArr[1];
} }
if (
this.searchForm.timeArr2 !== null &&
this.searchForm.timeArr2 !== undefined
) {
this.searchForm.startTime2 = this.searchForm.timeArr2[0];
this.searchForm.endTime2 = this.searchForm.timeArr2[1];
}
workOrderExcel(this.searchForm).then((res) => { workOrderExcel(this.searchForm).then((res) => {
const blob = res.data; const blob = res.data;
const link = document.createElement("a"); const link = document.createElement("a");
@ -293,43 +266,30 @@ export default {
// //
details(row) { details(row) {
this.$router.push({ this.$router.push({
path: '/workflow/process/effect', path: "/workflow/process/effect",
query: { query: {
form: JSON.stringify(row) form: JSON.stringify(row),
} },
}); });
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search-line { .search {
margin-top: 20px;
display: flex; display: flex;
justify-content: space-between; flex-wrap: wrap;
} }
.search-select { .search-select {
width: 150px; width: 180px;
margin-right: 20px; margin-right: 20px;
} margin-bottom: 15px;
.search-input {
width: 288px;
} }
.search-btn { .search-btn {
width: 130px; width: 100px;
height: 46px !important; height: 46px !important;
background: #2e92f6; background: #2e92f6;
color: #fff; color: #fff;
margin: 0 20px;
}
.search-reset {
width: 46px;
height: 44px !important;
background: #ff9130;
color: #fff;
text-align: center;
line-height: 46px;
cursor: pointer;
} }
/deep/ .el-input__inner { /deep/ .el-input__inner {
height: 46px; height: 46px;

@ -97,13 +97,13 @@
start-placeholder="创建开始日期" start-placeholder="创建开始日期"
end-placeholder="创建结束日期" end-placeholder="创建结束日期"
></el-date-picker> ></el-date-picker>
<el-button class="search-btn" @click="searchHandle(1)">查询</el-button> <div style="margin-left:auto;">
<div class="search-reset" @click="searchHandle(2)"> <el-button class="search-btn" @click="searchHandle(1)">查询</el-button>
<i class="el-icon-refresh-right" style="font-size: 20px"></i> <el-button class="search-btn" @click="searchHandle(2)" style="margin-left:20px;background: #ff9130;">重置</el-button>
</div> </div>
</div> </div>
</el-form> </el-form>
<div style="margin-top: 30px"> <div style="margin-top: 15px">
<avue-crud <avue-crud
id="avue-id" id="avue-id"
ref="crud" ref="crud"
@ -130,7 +130,7 @@
? '#FF9130' ? '#FF9130'
: scope.row.approvalStatus == '待实施' : scope.row.approvalStatus == '待实施'
? '#4CA3FB' ? '#4CA3FB'
: '#ccc', : '#FD4D66',
}" }"
>{{ scope.row.approvalStatus }}</span >{{ scope.row.approvalStatus }}</span
> >
@ -256,34 +256,21 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search-line { .search {
margin-top: 20px;
display: flex; display: flex;
justify-content: space-between; flex-wrap: wrap;
width: 100%;
} }
.search-select { .search-select {
width: 150px; width: 150px;
margin-right: 20px; margin-right: 20px;
} margin-bottom: 15px;
.search-input {
width: 288px;
} }
.search-btn { .search-btn {
width: 130px; width: 100px;
height: 46px !important; height: 46px !important;
background: #2e92f6; background: #2e92f6;
color: #fff; color: #fff;
margin: 0 20px;
}
.search-reset {
display: inline-block;
width: 46px;
height: 44px !important;
background: #ff9130;
color: #fff;
text-align: center;
line-height: 46px;
cursor: pointer;
} }
/deep/ .el-input__inner { /deep/ .el-input__inner {
height: 46px; height: 46px;

@ -2,140 +2,128 @@
<div class="cus-container"> <div class="cus-container">
<el-form :model="searchForm"> <el-form :model="searchForm">
<div class="search"> <div class="search">
<div> <el-select
<el-select v-model="searchForm.taskParent"
v-model="searchForm.taskParent" placeholder="任务父类"
placeholder="任务父类" class="search-select"
class="search-select" clearable
clearable >
<el-option
v-for="item in taskParent"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictValue"
> >
<el-option </el-option>
v-for="item in taskParent" </el-select>
:key="item.dictValue" <el-select
:label="item.dictValue" v-model="searchForm.taskType"
:value="item.dictValue" placeholder="任务种类"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.taskType" v-for="item in taskInfos"
placeholder="任务种类" :key="item.taskTypeName"
class="search-select" :label="item.taskTypeName"
clearable :value="item.taskTypeName"
> >
<el-option </el-option>
v-for="item in taskInfos" </el-select>
:key="item.taskTypeName" <el-select
:label="item.taskTypeName" v-model="searchForm.currentResponsiblePerson"
:value="item.taskTypeName" placeholder="当前责任人"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.currentResponsiblePerson" v-for="item in users"
placeholder="当前责任人" :key="item.realName"
class="search-select" :label="item.realName"
clearable :value="item.realName"
> >
<el-option </el-option>
v-for="item in users" </el-select>
:key="item.realName" <el-select
:label="item.realName" v-model="searchForm.management"
:value="item.realName" placeholder="管理部门"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.management" v-for="item in depts"
placeholder="管理部门" :key="item.deptName"
class="search-select" :label="item.deptName"
clearable :value="item.deptName"
> >
<el-option </el-option>
v-for="item in depts" </el-select>
:key="item.deptName" <el-select
:label="item.deptName" v-model="searchForm.taskLevel"
:value="item.deptName" placeholder="任务级别"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.taskLevel" v-for="item in taskLevel"
placeholder="任务级别" :key="item.dictValue"
class="search-select" :label="item.dictValue"
clearable :value="item.dictValue"
> >
<el-option </el-option>
v-for="item in taskLevel" </el-select>
:key="item.dictValue" <el-select
:label="item.dictValue" v-model="searchForm.approvalStatus"
:value="item.dictValue" placeholder="审批状态"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.approvalStatus" v-for="item in statusList"
placeholder="审批状态" :key="item.value"
class="search-select" :label="item.label"
clearable :value="item.value"
> >
<el-option </el-option>
v-for="item in statusList" </el-select>
:key="item.value" <el-select
:label="item.label" v-model="searchForm.applyUser"
:value="item.value" placeholder="发起人"
> class="search-select"
</el-option> clearable
</el-select> >
<el-select <el-option
v-model="searchForm.applyUser" v-for="item in users"
placeholder="发起人" :key="item.realName"
class="search-select" :label="item.realName"
clearable :value="item.realName"
>
</el-option>
</el-select>
<el-date-picker
style="width: 336px;"
v-model="searchForm.timeArr"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss"
class="search-picker"
type="datetimerange"
range-separator="至"
start-placeholder="创建开始日期"
end-placeholder="创建结束日期"
></el-date-picker>
<div style="margin-left:auto;">
<el-button class="search-btn" @click="searchHandle(1)"
>查询</el-button
>
<el-button
class="search-btn"
@click="searchHandle(2)"
style="background: #ff9130"
>重置</el-button
> >
<el-option
v-for="item in users"
:key="item.realName"
:label="item.realName"
:value="item.realName"
>
</el-option>
</el-select>
<el-date-picker
style="width: 314px; margin-right: 20px"
v-model="searchForm.timeArr"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss"
class="search-picker"
type="datetimerange"
range-separator="至"
start-placeholder="创建开始日期"
end-placeholder="创建结束日期"
></el-date-picker>
</div>
<div class="search-line">
<div style="display: flex">
<el-date-picker
style="width: 314px; margin-right: 20px"
v-model="searchForm.timeArr2"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss"
class="search-picker"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-button class="search-btn" @click="searchHandle(1)"
>查询</el-button
>
<div class="search-reset" @click="searchHandle(2)">
<i class="el-icon-refresh-right" style="font-size: 20px"></i>
</div>
</div>
<el-button <el-button
class="search-btn" class="search-btn"
style="margin: 0; background: #2ee27c" style="background: #2ee27c"
@click="exportHandle" @click="exportHandle"
>导出</el-button >导出</el-button
> >
@ -162,21 +150,25 @@
color: color:
scope.row.status == '审批中' scope.row.status == '审批中'
? '#FF9130' ? '#FF9130'
: scope.row.status == '进行中' : scope.row.status == '已驳回'
? '#4CA3FB' ? '#FD4D66'
: scope.row.status == '已完成' : scope.row.status == '已完成'
? '#2EE27C' ? '#2EE27C'
: '#000', : '#ccc',
}" }"
>{{ scope.row.status }}</span >{{ scope.row.status }}</span
> >
</template> </template>
</avue-crud> </avue-crud>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getList, conditionalData, exportExcel } from "@/api/plugin/workflow/workorder.js"; import {
getList,
conditionalData,
exportExcel,
} from "@/api/plugin/workflow/workorder.js";
import exForm from "../mixins/ex-form"; import exForm from "../mixins/ex-form";
import { tableOption } from "@/const/workflow/workorder.js"; import { tableOption } from "@/const/workflow/workorder.js";
export default { export default {
@ -203,11 +195,15 @@ export default {
label: "审批中", label: "审批中",
value: "审批中", value: "审批中",
}, },
{
label: "已驳回",
value: "已驳回",
},
{ {
label: "已完成", label: "已完成",
value: "已完成", value: "已完成",
}, },
] ],
}; };
}, },
created() { created() {
@ -217,12 +213,13 @@ export default {
methods: { methods: {
dictBiz() { dictBiz() {
conditionalData().then((res) => { conditionalData().then((res) => {
const { taskParent, taskInfos, depts, users, taskLevel } = res.data.data; const { taskParent, taskInfos, depts, users, taskLevel } =
res.data.data;
this.taskParent = taskParent; this.taskParent = taskParent;
this.taskInfos = taskInfos; this.taskInfos = taskInfos;
this.depts = depts; this.depts = depts;
this.users = users; this.users = users;
this.taskLevel = taskLevel this.taskLevel = taskLevel;
}); });
}, },
// //
@ -236,15 +233,12 @@ export default {
this.searchForm.startTime = this.searchForm.timeArr[0]; this.searchForm.startTime = this.searchForm.timeArr[0];
this.searchForm.endTime = this.searchForm.timeArr[1]; this.searchForm.endTime = this.searchForm.timeArr[1];
} }
if (
this.searchForm.timeArr2 !== null && getList({
this.searchForm.timeArr2 !== undefined current: currentPage,
) { size: pageSize,
this.searchForm.startTime2 = this.searchForm.timeArr2[0]; ...this.searchForm,
this.searchForm.endTime2 = this.searchForm.timeArr2[1]; }).then((res) => {
}
getList({ current:currentPage, size:pageSize ,...this.searchForm }).then((res) => {
const { total, records } = res.data.data; const { total, records } = res.data.data;
this.page.total = total; this.page.total = total;
this.tableData = records; this.tableData = records;
@ -266,7 +260,6 @@ export default {
if (index === 2) { if (index === 2) {
this.searchForm = { this.searchForm = {
timeArr: null, timeArr: null,
timeArr2: null,
}; };
} }
this.onLoad(); this.onLoad();
@ -280,13 +273,6 @@ export default {
this.searchForm.startTime = this.searchForm.timeArr[0]; this.searchForm.startTime = this.searchForm.timeArr[0];
this.searchForm.endTime = this.searchForm.timeArr[1]; this.searchForm.endTime = this.searchForm.timeArr[1];
} }
if (
this.searchForm.timeArr2 !== null &&
this.searchForm.timeArr2 !== undefined
) {
this.searchForm.startTime2 = this.searchForm.timeArr2[0];
this.searchForm.endTime2 = this.searchForm.timeArr2[1];
}
exportExcel(this.searchForm).then((res) => { exportExcel(this.searchForm).then((res) => {
const blob = res.data; const blob = res.data;
const link = document.createElement("a"); const link = document.createElement("a");
@ -307,35 +293,27 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search-line { .search {
margin-top: 20px;
display: flex; display: flex;
justify-content: space-between; flex-wrap: wrap;
width: 100%;
} }
.search-select { .search-select {
width: 150px; width: 160px;
margin-right: 20px; margin-right: 20px;
margin-bottom: 15px;
} }
.search-input {
width: 288px;
}
.search-btn { .search-btn {
width: 130px; width: 100px;
height: 46px !important; height: 46px !important;
background: #2e92f6; background: #2e92f6;
color: #fff; color: #fff;
margin: 0 20px;
}
.search-reset {
width: 46px;
height: 44px !important;
background: #ff9130;
color: #fff;
text-align: center;
line-height: 46px;
cursor: pointer;
} }
/deep/ .el-input__inner { /deep/ .el-input__inner {
height: 46px; height: 46px;
} }
/deep/ .el-button+.el-button {
margin-left: 20px;
}
</style> </style>

@ -305,7 +305,7 @@ export default {
var option = { var option = {
color: ["#FF9130", "#4CA3FB", "#2EE27C"], color: ["#FF9130", "#4CA3FB", "#2EE27C"],
title: { title: {
text: "按照完成状态统计", text: "近一个月完成状态统计",
textStyle: { textStyle: {
color: "#000", color: "#000",
fontSize: 16, fontSize: 16,
@ -538,9 +538,8 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.header { .header {
display: flex; display: flex;
justify-content: space-between;
&__item { &__item {
width: 350px; width: calc(100%/4);
height: 132px; height: 132px;
padding: 20px; padding: 20px;
box-sizing: border-box; box-sizing: border-box;
@ -562,9 +561,15 @@ export default {
} }
} }
} }
&__item:nth-child(2) {
margin: 0 30px;
}
&__item:nth-child(3) {
margin-right:30px;
}
} }
.main { .main {
height: calc(100% - 492px); height: 427px;
width: 100%; width: 100%;
background: #fff; background: #fff;
border-radius: 3px; border-radius: 3px;

Loading…
Cancel
Save