| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608 |
- <template>
- <div>
- <el-breadcrumb class="heading">
- <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
- <el-breadcrumb-item :to="{ path: '/oilsupplier/oilcontract' }">服务商年度评价审核</el-breadcrumb-item>
- </el-breadcrumb>
- <el-card class="box-card" style="height: calc(100vh - 115px);">
- <div slot="header">
- <span>
- <i class="icon icon-table2"></i> 服务商年度评价审核
- </span>
- <span style="float: right;">
- <!-- <router-link :to="'/oilcontract/contract-basis-year-single/add/operation'">
- <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">添加</el-button>
- </router-link> -->
- <!-- <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">导入</el-button> -->
- <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;" @click="exportExcel">导出</el-button>
- <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;" v-if="!selectAllButtonBoolean&&userSelectBoolean" @click="onSelectAllButton">一键审批</el-button>
- <el-button type="info" size="mini" style="margin-left:10px; margin-top: -4px;" v-if="selectAllButtonBoolean" @click="onSelectAllButtonDelete">取消</el-button>
- <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;" v-if="selectAllButtonBoolean" @click="onSelectAllButtonTrue">确定</el-button>
- </span>
- <el-form ref="form" :inline="true" style="float: right; margin-top: -10px">
- <el-form-item label="上报时间">
- <el-date-picker size="mini" style="width: 220px" v-model="CreateOn" type="daterange" range-separator="至"
- start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
- </el-form-item>
- <el-form-item>
- <el-dropdown split-button type="primary" size="mini" @click="handleSearch" @command="searchCommand">
- 查询
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item command="search">高级查询</el-dropdown-item>
- <el-dropdown-item command="clear">查询重置</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </el-form-item>
- </el-form>
- </div>
- <el-table id="rebateSetTable" highlight-current-row stripe size="mini" :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby" @selection-change="onSelectAll">
- <el-table-column v-if="selectAllButtonBoolean" :selectable="selectableFun" type="selection" width="55"></el-table-column>
- <el-table-column
- align="center"
- fixed
- type="selection"
- v-if="selectBoolean"
- width="70">
- </el-table-column>
- <el-table-column label="操作" min-width="210" align="center" fixed>
- <template slot-scope="scope">
- <el-button type="text" v-if="editeBoolean" size="small" icon="el-icon-edit" @click="onNavigateScore(scope.row)">编辑</el-button>
- <el-button type="text" v-else size="small" icon="el-icon-edit" @click="onNavigateScore(scope.row)">查看</el-button>
- <el-popover placement="top" title="提示" :ref="'popover-' + `${scope.$index}`" v-if="deleteBoolean&&scope.row.Status<=0">
- <el-alert
- title=""
- description="确认要删除吗?"
- type="warning"
- :closable="false">
- </el-alert>
- <br/>
- <div style="text-align: right; margin: 0">
- <el-button type="primary" size="mini" @click="deleteEntity(scope.row,scope.$index)">删除</el-button>
- </div>
- <el-button slot="reference" type="text" icon="el-icon-delete" style="margin-left:3px" size="small" >
- 删除
- </el-button>
- </el-popover>
- </template>
- </el-table-column>
- <!-- <el-table-column v-for="column in tableColumns" :key="column.Id"
- v-if="column.prop != 'CreateOn'" :prop="column.prop" sortable min-width="100" :label="column.label" align="center" show-overflow-tooltip>
- <template slot-scope="scope">
- <div>{{tableFun(column.prop,scope.row[column.prop])}}</div>
- </template>
- </el-table-column> -->
- <el-table-column sortable show-overflow-tooltip prop="SupplierName" header-align="center" width="130" label="服务商名称"></el-table-column>
- <el-table-column sortable show-overflow-tooltip prop="Status" header-align="center" width="130" label="状态">
- <template slot-scope="scope" >
- <div>{{columnFun(scope.row.Status)}}</div>
- </template>
- </el-table-column>
- <el-table-column sortable show-overflow-tooltip prop="Year" header-align="center" width="130" label="年度"></el-table-column>
- <el-table-column sortable show-overflow-tooltip prop="SumScore" header-align="center" label="评价得分" width="120"></el-table-column>
- <el-table-column sortable show-overflow-tooltip label="评价内容及得分" align="center">
- <el-table-column sortable show-overflow-tooltip prop="SumScore1" align="center" label="项目管理(40分)" width="140"></el-table-column>
- <el-table-column sortable show-overflow-tooltip prop="SumScore2" align="center" label="HSE管理(30分)" width="140"></el-table-column>
- <el-table-column sortable show-overflow-tooltip prop="SumScore3" align="center" label="合同履行(15分)" width="140"></el-table-column>
- <el-table-column sortable show-overflow-tooltip prop="SumScore4" align="center" label="企业诚信(15分)" width="140"></el-table-column>
- </el-table-column>
- <el-table-column sortable show-overflow-tooltip prop="Conclusion" label="评价结果" align="center" >
- <template slot-scope="scope">
- {{evaluateFun(scope.row.Conclusion)}}
- </template>
- </el-table-column>
- <el-table-column sortable show-overflow-tooltip prop="Result1" label="业绩评价结果" header-align="center" width="150">
- <template slot-scope="scope">
- {{scope.row.Result1}}
- </template>
- </el-table-column>
- <el-table-column sortable show-overflow-tooltip prop="Result2" label="基本条件评价结果" header-align="center" width="160">
- <template slot-scope="scope">
- {{scope.row.Result2}}
- </template>
- </el-table-column>
- <!--<el-table-column prop="CreateOn" sortable min-width="150" label="生成时间" align="center" show-overflow-tooltip>
- <template slot-scope="scope">
- {{ jstimehandle(scope.row.CreateOn+'') }}
- </template>
- </el-table-column>-->
- </el-table>
- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
- :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
- </el-pagination>
- </el-card>
- <!-- :selectDeptBoolean="false"-->
- <submitPopup ref="submitpopup" :examineType="1" :selectDeptBoolean="false" :eveId="eveIdList" @refreshPage="initDatas" ></submitPopup>
- <el-dialog title="高级查询" :visible.sync="dialogVisible" width="720px" class="advancedsearchFormClass">
- <el-form ref="advancedsearchForm" label-width="110px">
- <el-row>
- <el-col :span="12">
- <el-form-item label="生成时间">
- <el-date-picker size="mini" v-model="CreateOn" type="daterange" style="width:100%" range-separator="至"
- start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="服务商名称">
- <el-input size="mini" v-model="searchForm.SupplierName" style="width:100%" placeholder="请输入"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="评价结果">
- <el-select v-model="searchForm.Conclusion" placeholder="请选择" >
- <el-option key="1" label="优秀" value="1"></el-option>
- <el-option key="2" label="合格" value="2"></el-option>
- <el-option key="3" label="不合格" value="3"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="状态">
- <el-select v-model="searchForm.Status" placeholder="请选择" >
- <el-option key="0" label="初始" value="0"></el-option>
- <el-option key="1" label="待二级初审" value="1"></el-option>
- <el-option key="2" label="待二级复审" value="2"></el-option>
- <el-option key="3" label="专业科室接收" value="3"></el-option>
- <el-option key="4" label="待专业科室审核" value="4"></el-option>
- <el-option key="5" label="待集中评审" value="5"></el-option>
- <el-option key="6" label="待交费" value="6"></el-option>
- <el-option key="7" label="待企管审批" value="7"></el-option>
- <el-option key="8" label="完成" value="8"></el-option>
- <el-option key="9" label="审核未通过" value="9"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="评价得分">
- <el-input-number size="mini" v-model="searchForm.SumScore" max="100" min="0" placeholder="请输入" style="width: 100%" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="项目管理得分">
- <el-input-number size="mini" v-model="searchForm.SumScore1" max="40" min="0" placeholder="请输入" style="width: 100%" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="HES管理得分">
- <el-input-number size="mini" v-model="searchForm.SumScore2" max="30" min="0" placeholder="请输入" style="width: 100%" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="合同履行得分">
- <el-input-number size="mini" v-model="searchForm.SumScore3" max="15" min="0" placeholder="请输入" style="width: 100%" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="企业诚信得分">
- <el-input-number size="mini" v-model="searchForm.SumScore4" max="15" min="0" placeholder="请输入" style="width: 100%" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="备注">
- <el-input size="mini" v-model="searchForm.Remark" type="textarea" style="width:100%" placeholder="请输入"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button size="mini" @click="dialogVisible = false">取 消</el-button>
- <el-button size="mini" type="primary" @click="handleSearch">查 询</el-button>
- </span>
- </el-dialog>
- </div>
- </template>
- <script>
- import { mapGetters } from 'vuex';
- import apiContract from '@/api/oilcontract/contract';
- import api from '@/api/oilcontract/contractSumScore';
- import permissionApi from '@/api/oilcontract/permission';
- import FileSaver from 'file-saver'
- import XLSX from 'xlsx'
- export default {
- computed: {
- ...mapGetters({
- authUser: 'authUser'
- })
- },
- computed:{
- evaluateFun:function(){
- return function(item){
- var index = Number(item)
- switch(index){
- case 1:
- return '优秀'
- break;
- case 2:
- return '合格'
- break;
- case 3:
- return '不合格'
- break;
- default:
- return '--'
- }
- }
- },
- columnFun:function(){
- return function(item){
- var index = Number(item)
- switch(index){
- case 0:
- return '已保存'
- break;
- case 1:
- return '待初审'
- break;
- case 2:
- return '待复审'
- break;
- case 3:
- return '专业科室接收'
- break;
- case 4:
- return '待专业科室审核'
- break;
- case 7:
- return '待企管法规处审批'
- break;
- case 8:
- return '已完成'
- break;
- case -1:
- return '初审未通过'
- break;
- case -2:
- return '复审未通过'
- break;
- case -3:
- return '专业处室未通过'
- break;
- case -4:
- return '专业处室审核未通过'
- break;
- case -7:
- return '企管法规处审批未通过'
- break;
- default:
- return '--'
- break;
- }
- }
- }
- },
- name: 'oilcontract',
- data() {
- return {
- userSelectBoolean:false,
- eveIdList:'',
- selectAllButtonBoolean:false,
- editeBoolean:false,
- deleteBoolean:false,
- selectBoolean:false,//表格选项框
- dialogVisible: false,
- //列表数据
- entityList: [],
- //分页参数
- size: 10,
- currentPage: 1,
- currentItemCount: 0,
- //列表排序
- Column: {
- Order: '',
- Prop: ''
- },
- //查询时间new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()
- CreateOn: [],
- //查询项
- searchFormReset: {},
- searchForm: {
- Id: '',
- SupplierId: '',
- SupplierName: '',
- Conclusion:'',
- Status:'',
- SumScore:'',
- SumScore1:'',
- SumScore2:'',
- SumScore3:'',
- SumScore4:'',
- Remark: '',
- },
- }
- },
- created() {
- //查询条件初始值备份
- Object.assign(this.searchFormReset, this.searchForm);
- //查询列表
- this.initDatas();
- //this.getDictOptions()
- this.statusFun()
- },
- methods: {
- // 导出
- exportExcel () {
- //分页及列表条件
- let params = {
- _currentPage: this.currentPage,
- _size: this.size,
- Order: this.Column.Order,
- Prop: this.Column.Prop,
- ContractClass:'03',
- }
- let myCreateOn = []
- // 解析时间
- if (this.CreateOn.length == 2) {
- this.CreateOn[1].setHours(23)
- this.CreateOn[1].setMinutes(59)
- this.CreateOn[1].setSeconds(59)
- myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
- myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
- }
- //查询条件
- Object.assign(params, this.searchForm)
- api.docexportExcel(myCreateOn.join(','), params, this.$axios).then(res => {
- if (res.data.code === 0) {
- let docurl = res.data.item
- // 内网服务器专用
- const myDomain = window.location.host
- if (process.client && docurl.indexOf('upfile') === 0) {
- const myDomain = window.location.host
- location.href = 'http://' + myDomain + '/' + docurl
- } else {
- location.href = 'http://' + docurl
- }
- }
- }).catch(err => {
- console.error(err)
- })
- },
- //一键处理
- onSelectAll(e){
- console.log(e)
- var list = []
- e.map((item,index) => {
- list.push(item.Id)
- })
- this.eveIdList = String(list)
- },
- //筛选
- selectableFun(row,index){
- if(row.Status==4){
- return true;
- }else{
- return false;
- }
- },
- //一键处理按钮
- onSelectAllButton(){
- this.selectAllButtonBoolean = true
- },
- //一键处理确定
- onSelectAllButtonTrue(){
- if(this.eveIdList!=''&&this.eveIdList!=undefined){
- this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
- }else{
- this.$message({
- type: 'warning',
- message: '请选择评价'
- });
- }
- },
- //一键处理取消
- onSelectAllButtonDelete(){
- this.selectAllButtonBoolean = false
- },
- //状态判断
- statusFun(){
- // 一键处理权限
- var data = {
- percode:'oil_contract.SumStore.Batch',
- }
- permissionApi.permissionIsauth(data, this.$axios).then(res => {
- console.log('一键处理权限权限',res.data)
- if(res.data.code==0){
- if(res.data.message=='有权限'){
- this.userSelectBoolean = true
- }
- }
- }).catch(err => {
- console.error(err)
- })
- var data = {
- percode:'oil_contract.SumStore.Delete',
- }
- permissionApi.permissionIsauth(data, this.$axios).then(res => {
- console.log('权限',res.data)
- if(res.data.code==0){
- if(res.data.message=='有权限'){
- this.deleteBoolean = true
- }
- }
- }).catch(err => {
- console.error(err)
- })
- var data = {
- percode:'oil_contract.SumStore.Edit',
- }
- permissionApi.permissionIsauth(data, this.$axios).then(res => {
- console.log('权限',res.data)
- if(res.data.code==0){
- if(res.data.message=='有权限'){
- this.editeBoolean = true
- }
- }
- }).catch(err => {
- console.error(err)
- })
- },
- //跳转评价
- onNavigateScore(item){
- console.log('跳转',item)
- this.$router.push({
- path:'/oilcontract/contract-service-year/' + item.Id + '/operation',
- query:{
- item:item
- }
- })
- },
- initDatas() {
- //分页及列表条件
- let params = {
- _currentPage: this.currentPage,
- _size: this.size,
- Order: this.Column.Order,
- Prop: this.Column.Prop,
- ContractClass:'03',
- }
- let myCreateOn = []
- // 解析时间
- if (this.CreateOn.length == 2) {
- this.CreateOn[1].setHours(23)
- this.CreateOn[1].setMinutes(59)
- this.CreateOn[1].setSeconds(59)
- myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
- myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
- }
- //查询条件
- Object.assign(params, this.searchForm)
- //访问接口
- api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
- this.entityList = res.data.items
- this.currentItemCount = res.data.currentItemCount
- }).catch(err => {
- console.error(err)
- })
- },
- getDictOptions() {
- api.getDictList(this.$axios).then(res => {
- //this.dictOptions.customerList = res.data.items['customerList']
- //this.dictOptions.projectList = res.data.items['projectList']
- }).catch(err => {
- console.error(err)
- })
- },
- searchCommand(command) {
- if (command == 'search') {
- this.dialogVisible = true
- } else if (command == 'clear') {
- this.clearSearch()
- }
- },
- //列表排序功能
- orderby(column) {
- if (column.order == 'ascending') {
- this.Column.Order = 'asc'
- } else if (column.order == 'descending') {
- this.Column.Order = 'desc'
- }
- this.Column.Prop = column.prop
- this.initDatas()
- },
- clearSearch() {
- Object.assign(this.searchForm, this.searchFormReset);
- //this.searchForm = this.searchFormReset;
- this.CreateOn = ''
- this.initDatas()
- },
- handleSearch() {
- this.currentPage = 1;
- this.dialogVisible = false;
- this.initDatas();
- },
- handleCurrentChange(value) {
- this.currentPage = value
- this.initDatas()
- },
- handleSizeChange(value) {
- this.size = value
- this.currentPage = 1
- this.initDatas()
- },
- deleteEntity(row,index) {
- this.$refs['popover-' + `${index}`].doClose()
- api.deleteEntity(row.Id, this.$axios).then(res => {
- if (res.data.code === 0) {
- this.initDatas();
- this.$message({
- type: 'success',
- message: res.data.message
- });
- } else {
- this.$message({
- type: 'warning',
- message: res.data.message
- });
- }
- }).catch(err => {
- console.error(err)
- });
- },
- jstimehandle(val) {
- if (val === '') {
- return '----'
- } else if (val === '0001-01-01T08:00:00+08:00') {
- return '----'
- } else if (val === '5000-01-01T23:59:59+08:00') {
- return '永久'
- } else {
- val = val.replace('T', ' ')
- return val.substring(0, 10)
- }
- },
- formatDateTime(date) {
- var y = date.getFullYear();
- var m = date.getMonth() + 1;
- m = m < 10 ? ('0' + m) : m;
- var d = date.getDate();
- d = d < 10 ? ('0' + d) : d;
- var h = date.getHours();
- var minute = date.getMinutes();
- minute = minute < 10 ? ('0' + minute) : minute;
- return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
- }
- }
- }
- </script>
- <style lang="scss">
- .el-pagination {
- margin: 1rem 0 2rem;
- text-align: right;
- }
- </style>
|