feature: 标准跟踪清单-重构
This commit is contained in:
@@ -0,0 +1,686 @@
|
||||
<template>
|
||||
<el-drawer
|
||||
ref="standard"
|
||||
title="查询结果"
|
||||
size="1250px"
|
||||
:visible.sync="visible"
|
||||
direction="rtl"
|
||||
append-to-body
|
||||
>
|
||||
<div style="flex: 1" class="drawer-content">
|
||||
<div style="height: calc(100% - 56px)">
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
inline
|
||||
class="label-input-form search-area"
|
||||
style="justify-content: left;"
|
||||
>
|
||||
<el-form-item label="标准/政策来源" class="search-item">
|
||||
<el-select
|
||||
v-model="searchForm.dataSource"
|
||||
placeholder="请选择标准/政策来源"
|
||||
@change="dataSourceChange"
|
||||
>
|
||||
<el-option v-for="i in dataSourceOptions" :value="i.value" :label="i.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="标准编号/政策文号"
|
||||
style="margin-right:10px"
|
||||
class="search-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchForm.lawNumber"
|
||||
clearable
|
||||
placeholder="根据编号查找"
|
||||
:maxlength="100"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="标准名称/政策名称"
|
||||
style="margin-right:10px"
|
||||
class="search-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchForm.lawName"
|
||||
placeholder="根据名称查找"
|
||||
clearable
|
||||
:maxlength="100"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
class="common-button-primary"
|
||||
@click="onSearch"
|
||||
>
|
||||
查询
|
||||
</el-button>
|
||||
<el-button
|
||||
class="common-button-default"
|
||||
size="mini"
|
||||
@click="onClear"
|
||||
>
|
||||
清空
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-table
|
||||
v-if="showTable"
|
||||
ref="reviseDrawerTable"
|
||||
:data="standardData"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
height="calc(100% - 51px)"
|
||||
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px'}"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<el-table-column
|
||||
fixed="left"
|
||||
type="selection"
|
||||
width="55"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
fixed="left"
|
||||
type="index"
|
||||
width="55"
|
||||
label="序号"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="{scope, column, $index}">
|
||||
{{ ($index + 1) + (searchForm.page - 1) * searchForm.pageSize }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<div v-if="searchForm.dataSource === 'INLAND'">
|
||||
<el-table-column
|
||||
label="标准号"
|
||||
width="150"
|
||||
prop="standCode"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a
|
||||
v-if="scope.row.standYear && textStatusMap[scope.row.textStatus] === '废止'"
|
||||
class="table-jump"
|
||||
style="color: #F56C6C"
|
||||
@click="handlePreview(scope.row)"
|
||||
>{{ scope.row.standCode }}</a>
|
||||
<a
|
||||
v-else-if="scope.row.standYear"
|
||||
class="table-jump"
|
||||
style="color: #333333"
|
||||
@click="handlePreview(scope.row)"
|
||||
>{{ scope.row.standCode }}</a>
|
||||
<a
|
||||
v-else
|
||||
class="table-jump"
|
||||
style="color: #333333"
|
||||
@click="handlePreview(scope.row)"
|
||||
>{{ scope.row.standCode }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="standName"
|
||||
label="标准名称"
|
||||
min-width="300"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="textStatusMap[scope.row.textStatus] === '废止'" class="table-jump" style="color: #F56C6C" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
|
||||
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="issueTime"
|
||||
width="120"
|
||||
label="发布日期"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{ scope.row.issueTime }}</span>
|
||||
<span v-else>{{ scope.row.issueTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="ssrq"
|
||||
width="120"
|
||||
label="实施日期"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{ scope.row.ssrq }}</span>
|
||||
<span v-else>{{ scope.row.ssrq }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="xcxssrq"
|
||||
width="150"
|
||||
label="新车型实施日期"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{ scope.row.xcxssrq }}</span>
|
||||
<span v-else>{{ scope.row.xcxssrq }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="zccssrq"
|
||||
width="150"
|
||||
label="在产车实施日期"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{ scope.row.zccssrq }}</span>
|
||||
<span v-else>{{ scope.row.zccssrq }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="textStatus"
|
||||
width="110"
|
||||
label="标准状态"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
|
||||
textStatusMap[scope.row.textStatus]
|
||||
}}</span>
|
||||
<span v-else>{{ textStatusMap[scope.row.textStatus] }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</div>
|
||||
<div v-if="searchForm.dataSource === 'FOREIGN'">
|
||||
<el-table-column
|
||||
label="标准号"
|
||||
width="150"
|
||||
prop="standCode"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a
|
||||
v-if="scope.row.standYear && textStatusMap[scope.row.textStatus] === '废止'"
|
||||
style="color: #F56C6C"
|
||||
class="table-jump"
|
||||
@click="handlePreview(scope.row)"
|
||||
>{{ scope.row.standCode }}</a>
|
||||
<a
|
||||
v-else-if="scope.row.standYear && textStatusMap[scope.row.textStatus] === '——' "
|
||||
style="color: #409EFF"
|
||||
class="table-jump"
|
||||
@click="handlePreview(scope.row)"
|
||||
>{{ scope.row.standCode }}</a>
|
||||
<a
|
||||
v-else-if="scope.row.standYear"
|
||||
style="color: #333333"
|
||||
class="table-jump"
|
||||
@click="handlePreview(scope.row)"
|
||||
>{{ scope.row.standCode }}</a>
|
||||
<a
|
||||
v-else
|
||||
style="color: #333333"
|
||||
class="table-jump"
|
||||
@click="handlePreview(scope.row)"
|
||||
>{{ scope.row.standCode }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="standName"
|
||||
label="标准名称"
|
||||
min-width="300"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
scope.row.standName
|
||||
}}</a>
|
||||
<a v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
scope.row.standName
|
||||
}}</a>
|
||||
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
scope.row.standName
|
||||
}}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="standEnName"
|
||||
label="英文名称"
|
||||
min-width="300"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
scope.row.standEnName
|
||||
}}</a>
|
||||
<a v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
scope.row.standEnName
|
||||
}}</a>
|
||||
<a v-else style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
scope.row.standEnName
|
||||
}}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="issueTime"
|
||||
width="120"
|
||||
label="发布日期"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">
|
||||
{{ scope.row.issueTime }}
|
||||
</div>
|
||||
<div v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">
|
||||
{{ scope.row.issueTime }}
|
||||
</div>
|
||||
<div v-else style="color: #333333">
|
||||
{{ scope.row.issueTime }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="ssrq"
|
||||
width="120"
|
||||
label="实施日期"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
|
||||
scope.row.ssrq
|
||||
}}</span>
|
||||
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
||||
scope.row.ssrq
|
||||
}}</span>
|
||||
<span v-else style="color: #333333">{{ scope.row.ssrq }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="xcxssrq"
|
||||
width="150"
|
||||
label="新车型实施日期"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
|
||||
scope.row.xcxssrq
|
||||
}}</span>
|
||||
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
||||
scope.row.xcxssrq
|
||||
}}</span>
|
||||
<span v-else style="color: #333333">{{
|
||||
scope.row.xcxssrq
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="zccssrq"
|
||||
width="150"
|
||||
label="在产车实施日期"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
|
||||
scope.row.zccssrq
|
||||
}}</span>
|
||||
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
||||
scope.row.zccssrq
|
||||
}}</span>
|
||||
<span v-else style="color: #333333">{{
|
||||
scope.row.zccssrq
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="textStatus"
|
||||
width="110"
|
||||
label="标准状态"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止'" style="color: #F56C6C">{{
|
||||
textStatusMap[scope.row.textStatus]
|
||||
}}</span>
|
||||
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
||||
textStatusMap[scope.row.textStatus]
|
||||
}}</span>
|
||||
<span v-else style="color: #333333">{{ textStatusMap[scope.row.textStatus] }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</div>
|
||||
<div v-if="searchForm.dataSource === 'FOREIGN_LAWS'">
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
label="政策文号"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsNo }}</a>
|
||||
<a v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsNo }}</a>
|
||||
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsNo }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="lawsName"
|
||||
label="中文名称"
|
||||
min-width="300"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsName }}</a>
|
||||
<a v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsName }}</a>
|
||||
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="lawsEnName"
|
||||
label="英文名称"
|
||||
min-width="300"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsEnName }}</a>
|
||||
<a v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsEnName }}</a>
|
||||
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.lawsEnName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="issueTime"
|
||||
label="发文日期"
|
||||
width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">{{ scope.row.issueTime }}</span>
|
||||
<span v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C">{{ scope.row.issueTime }}</span>
|
||||
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">{{ scope.row.issueTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="XCXSSRQLAWS"
|
||||
label="新车实施日期"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">{{ scope.row.putTime }}</span>
|
||||
<span v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C">{{ scope.row.putTime }}</span>
|
||||
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">{{ scope.row.XCXSSRQLAWS }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="standStatusShow"
|
||||
label="标准状态"
|
||||
width="110"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">
|
||||
{{ scope.row.standStatusShow }}
|
||||
</span>
|
||||
<span v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C">
|
||||
{{ scope.row.standStatusShow }}
|
||||
</span>
|
||||
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">
|
||||
{{ scope.row.standStatusShow }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</div>
|
||||
<div v-if="searchForm.dataSource === 'BUSINESS_STAND'">
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
label="企标编号"
|
||||
width="150"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standCode }}</a>
|
||||
<a v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standCode }}</a>
|
||||
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standCode }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="standName"
|
||||
label="中文名称"
|
||||
min-width="300"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
|
||||
<a v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
|
||||
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="standEnName"
|
||||
label="英文名称"
|
||||
min-width="300"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standEnName }}</a>
|
||||
<a v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standEnName }}</a>
|
||||
<a v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standEnName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="issueTime"
|
||||
label="发布日期"
|
||||
width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">{{ scope.row.issueTime }}</span>
|
||||
<span v-if="scope.row.standStatusShow === '参考' " style="color: #E6A23C">{{ scope.row.issueTime }}</span>
|
||||
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">{{ scope.row.issueTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="putTime"
|
||||
label="实施日期"
|
||||
width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">{{ scope.row.putTime }}</span>
|
||||
<span v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C">{{ scope.row.putTime }}</span>
|
||||
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">{{ scope.row.putTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="standStatusShow"
|
||||
label="标准状态"
|
||||
width="110"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.standStatusShow === '作废'" style="color: #F56C6C">
|
||||
{{ scope.row.standStatusShow }}
|
||||
</span>
|
||||
<span v-if="scope.row.standStatusShow === '参考'" style="color: #E6A23C">
|
||||
{{ scope.row.standStatusShow }}
|
||||
</span>
|
||||
<span v-if="scope.row.standStatusShow !== '作废' && scope.row.standStatusShow !== '参考'">
|
||||
{{ scope.row.standStatusShow }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</div>
|
||||
</el-table>
|
||||
</div>
|
||||
<pagination
|
||||
:page="searchForm.page"
|
||||
:total="searchForm.total"
|
||||
@pageChange="pageChange"
|
||||
@pageSizeChange="pageSizeChange"
|
||||
/>
|
||||
</div>
|
||||
<div class="drawer-footer">
|
||||
<el-button
|
||||
round
|
||||
class="common-button-primary"
|
||||
icon="el-icon-check"
|
||||
type="primary"
|
||||
@click="onDrag"
|
||||
>
|
||||
带入
|
||||
</el-button>
|
||||
<el-button
|
||||
round
|
||||
class="common-button-default"
|
||||
icon="el-icon-close"
|
||||
@click="onCancel"
|
||||
>
|
||||
取消
|
||||
</el-button>
|
||||
</div>
|
||||
<loading :loading="loading">数据获取中</loading>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'StandardListDrawer',
|
||||
data () {
|
||||
const dataSourceOptions = [
|
||||
{
|
||||
label: '国内标准库',
|
||||
value: 'INLAND'
|
||||
},
|
||||
{
|
||||
label: '海外标准库',
|
||||
value: 'FOREIGN'
|
||||
},
|
||||
{
|
||||
label: '国内外政策库',
|
||||
value: 'FOREIGN_LAWS'
|
||||
},
|
||||
{
|
||||
label: '企业标准库',
|
||||
value: 'BUSINESS_STAND'
|
||||
},
|
||||
]
|
||||
const searchForm = {
|
||||
dataSource: 'INLAND',
|
||||
standType: 'INLAND',
|
||||
lawCode: '',
|
||||
lawName: '',
|
||||
productType: '',
|
||||
page: 1,
|
||||
total: 0,
|
||||
pageSize: this.$store.getters.userInfo.configContent,
|
||||
}
|
||||
return {
|
||||
searchForm,
|
||||
initSearchForm: JSON.parse(JSON.stringify(searchForm)),
|
||||
dataSourceOptions,
|
||||
standardData: [],
|
||||
loading: false,
|
||||
url: {
|
||||
INLANDFOREIGN: 'sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage',
|
||||
FOREIGN_LAWS: 'lawss/sarLawsInfo/page',
|
||||
BUSINESS_STAND: 'lawss/sarBussionessStand/getSarBussionStandPage'
|
||||
},
|
||||
textStatusMap: {},
|
||||
showTable: true,
|
||||
visible: false,
|
||||
selectedList: [],
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
open () {
|
||||
this.visible = true
|
||||
this.searchForm = JSON.parse(JSON.stringify(this.initSearchForm))
|
||||
this.selectedList = []
|
||||
this.getData()
|
||||
},
|
||||
onCancel () {
|
||||
this.visible = false
|
||||
},
|
||||
getData () {
|
||||
const config = {
|
||||
_this: this,
|
||||
loading: 'loading'
|
||||
}
|
||||
let url = this.url.INLANDFOREIGN
|
||||
switch (this.searchForm.dataSource) {
|
||||
case 'INLAND':
|
||||
case 'FOREIGN':
|
||||
url = this.url.INLANDFOREIGN
|
||||
break
|
||||
case 'FOREIGN_LAWS':
|
||||
url = this.url.FOREIGN_LAWS
|
||||
break
|
||||
case 'BUSINESS_STAND':
|
||||
url = this.url.BUSINESS_STAND
|
||||
break
|
||||
}
|
||||
this.searchForm.standType = this.searchForm.dataSource
|
||||
this.$http._getData(url, this.searchForm, config).then(res => {
|
||||
if (res.ok) {
|
||||
this.standardData = res.data.list
|
||||
this.searchForm.total = res.data.count
|
||||
this.showTable = false
|
||||
this.$nextTick(() => {
|
||||
this.showTable = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
pageChange (page) {
|
||||
this.searchForm.page = page
|
||||
this.getData()
|
||||
},
|
||||
pageSizeChange (pageSize) {
|
||||
this.searchForm.pageSize = pageSize
|
||||
this.getData()
|
||||
},
|
||||
dataSourceChange () {
|
||||
const standType = this.searchForm.dataSource
|
||||
this.searchForm = JSON.parse(JSON.stringify(this.initSearchForm))
|
||||
this.searchForm.dataSource = standType
|
||||
this.searchForm.standType = standType
|
||||
this.getData()
|
||||
},
|
||||
onSearch () {
|
||||
this.searchForm.page = 1
|
||||
this.getData()
|
||||
},
|
||||
onClear () {
|
||||
this.getData()
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
if (res.ok) {
|
||||
this.dict = { ...res.data }
|
||||
this.setMap(this.dict.WBZTCLASS, 'textStatusMap')
|
||||
}
|
||||
})
|
||||
},
|
||||
setMap (data, key) {
|
||||
data.forEach(item => {
|
||||
this.$set(this[key], item.value, item.label);
|
||||
});
|
||||
},
|
||||
selectionChange (selection) {
|
||||
this.selectedList = selection
|
||||
},
|
||||
onDrag () {
|
||||
this.$emit('dragIn', {
|
||||
list: this.selectedList,
|
||||
type: this.searchForm.dataSource
|
||||
})
|
||||
this.visible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.drawer-content{
|
||||
padding: 0 19px;
|
||||
overflow-y: auto;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
}
|
||||
.drawer-footer {
|
||||
width: 100%;
|
||||
padding: 0 20px;
|
||||
height: 70px;
|
||||
line-height: 69px;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
text-align: right;
|
||||
background: #fff;
|
||||
z-index: 999;
|
||||
}
|
||||
</style>
|
||||
@@ -5,33 +5,35 @@
|
||||
<h4>{{ title }}</h4>
|
||||
<div style="margin-top: 10px;width: 300px;max-width: 100%">
|
||||
<el-input
|
||||
:disabled="disabled"
|
||||
:value="name"
|
||||
:placeholder="`选择${title}`"
|
||||
readonly
|
||||
@click.native="choice(id)"></el-input>
|
||||
:disabled="disabled"
|
||||
:value="name"
|
||||
:placeholder="placeholder || `选择${title}`"
|
||||
readonly
|
||||
@click.native="choice(id)"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-card>
|
||||
<Role-tree v-if="!disabled"
|
||||
:check-box="!multiple"
|
||||
:is-title="`选择${title}`"
|
||||
:is-visible.sync="modalShowFlag"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></Role-tree>
|
||||
<Role-tree
|
||||
v-if="!disabled"
|
||||
:check-box="!multiple"
|
||||
:is-title="`选择${title}`"
|
||||
:is-visible.sync="modalShowFlag"
|
||||
:nodeList="nodeList"
|
||||
@checkedRole="checkedRole"
|
||||
/>
|
||||
</el-timeline-item>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "TimeLineFormItem",
|
||||
name: 'TimeLineFormItem',
|
||||
props: {
|
||||
id:{
|
||||
id: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
name:{
|
||||
name: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
@@ -50,14 +52,17 @@ export default {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
multiple: {// 多选
|
||||
multiple: { // 多选
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
placeholder: {
|
||||
type: String
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
drawerTitle: '', //drawer标题
|
||||
drawerTitle: '', // drawer标题
|
||||
modalShowFlag: false, // drawer开关
|
||||
nodeList: [],
|
||||
}
|
||||
@@ -77,7 +82,7 @@ export default {
|
||||
this.$emit('update:name', name)
|
||||
},
|
||||
joint (data, type) {
|
||||
return data.reduce((init,item) => {
|
||||
return data.reduce((init, item) => {
|
||||
if (init === '') {
|
||||
return item[type]
|
||||
} else {
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
:visible.sync="fileMadel"
|
||||
title="上传文件"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
>
|
||||
<el-upload
|
||||
ref="importfile"
|
||||
|
||||
@@ -0,0 +1,215 @@
|
||||
<template>
|
||||
<div style="height: calc(100% - 155px)">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
style="margin-bottom: 10px;"
|
||||
@click="handleSearchStandard"
|
||||
>
|
||||
手动查找
|
||||
</el-button>
|
||||
<el-button
|
||||
type="danger"
|
||||
size="mini"
|
||||
style="margin-bottom: 10px;"
|
||||
@click="handleDeleteStandard"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
<el-table
|
||||
ref="selection"
|
||||
class="table"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width:100%;height: calc(100% - 40px)"
|
||||
height="string"
|
||||
border
|
||||
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px', padding: 0}"
|
||||
:cell-style="{padding: 0}"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="55"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
type="index"
|
||||
width="55"
|
||||
label="序号"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="{scope, column, $index}">
|
||||
{{ ($index + 1) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="标准编号/政策文号"
|
||||
show-overflow-tooltip
|
||||
prop="lawCode"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="lawName"
|
||||
label="标准名称/政策名称"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="productType"
|
||||
align="center"
|
||||
show-overflow-tooltip
|
||||
label="产品类型"
|
||||
>
|
||||
<template slot-scope="{row, column, $index}">
|
||||
<el-select
|
||||
v-model="row.productType"
|
||||
placeholder="请选择产品类型"
|
||||
size="mini"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.trackingChecklistProductType"
|
||||
:key="item.value"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="implTime"
|
||||
align="center"
|
||||
show-overflow-tooltip
|
||||
label="实施日期"
|
||||
>
|
||||
<template slot-scope="{row, column, $index}">
|
||||
<el-date-picker
|
||||
v-model="row.implTime"
|
||||
size="mini"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择日期"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="implRequire"
|
||||
align="center"
|
||||
show-overflow-tooltip
|
||||
label="实施要求"
|
||||
>
|
||||
<template slot-scope="{row, column, $index}">
|
||||
<el-select
|
||||
v-model="row.implRequire"
|
||||
placeholder="请选择实施要求"
|
||||
clearable
|
||||
size="mini"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.trackingChecklistPutDemand"
|
||||
:key="item.value"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<StandardListDrawer ref="StandardListDrawerRef" @dragIn="dragIn" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import StandardListDrawer from '@/components/hzwlComponents/StandardListDrawer'
|
||||
export default {
|
||||
name: 'Inventory',
|
||||
components: {
|
||||
StandardListDrawer
|
||||
},
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
selectedList: [],
|
||||
dict: {}
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getDicTypeListCode()
|
||||
},
|
||||
methods: {
|
||||
handleSearchStandard () {
|
||||
this.$refs.StandardListDrawerRef.open()
|
||||
},
|
||||
selectionChange (selection) {
|
||||
this.selectedList = selection
|
||||
},
|
||||
dragIn ({ list, type }) {
|
||||
if (list.some(item => this.data.some(i => i.id === item.id))) {
|
||||
this.$message.warning('请勿重复添加数据')
|
||||
return
|
||||
}
|
||||
const newList = list.map(item => {
|
||||
let lawCode = ''
|
||||
let lawName = ''
|
||||
switch (type) {
|
||||
case 'INLAND':
|
||||
case 'FOREIGN':
|
||||
case 'BUSINESS_STAND':
|
||||
lawCode = item.standCode
|
||||
lawName = item.standName
|
||||
break
|
||||
case 'FOREIGN_LAWS':
|
||||
lawCode = item.lawsNo
|
||||
lawName = item.lawsName
|
||||
break
|
||||
}
|
||||
return {
|
||||
id: item.id,
|
||||
dataSource: type,
|
||||
lawCode,
|
||||
lawName,
|
||||
productType: '',
|
||||
implTime: '',
|
||||
implRequire: ''
|
||||
}
|
||||
})
|
||||
this.data.push(...newList)
|
||||
},
|
||||
handleDeleteStandard () {
|
||||
if (this.selectedList.length === 0) {
|
||||
this.$message.warning('请选择要删除的数据')
|
||||
return
|
||||
}
|
||||
this.$confirm('确认删除这些数据?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
confirmButtonClass: 'common-button-primary',
|
||||
roundButton: true
|
||||
}).then(() => {
|
||||
this.data = this.data.filter(item => !this.selectedList.some(i => i.id === item.id))
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.table{
|
||||
/deep/ .el-date-editor.el-input, .el-date-editor.el-input__inner {
|
||||
width: 145px !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,133 @@
|
||||
<template>
|
||||
<el-timeline>
|
||||
<el-form
|
||||
ref="userForm"
|
||||
:model="roleForm"
|
||||
:rules="roleRules"
|
||||
class="label-input-form"
|
||||
>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.prcCreateUser"
|
||||
prop="prcCreateUserName"
|
||||
timestamp="发起流程"
|
||||
title="起草"
|
||||
placeholder="请选择起草人"
|
||||
:name.sync="roleForm.prcCreateUserName"
|
||||
disabled
|
||||
/>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.shr1UserIds"
|
||||
prop="shr1UserNames"
|
||||
timestamp="审核"
|
||||
title="审核"
|
||||
placeholder="请选择审核人"
|
||||
multiple
|
||||
:name.sync="roleForm.shr1UserNames"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.sdr1UserIds"
|
||||
prop="sdr1UserNames"
|
||||
timestamp="审定"
|
||||
title="审定"
|
||||
placeholder="请选择审定人"
|
||||
multiple
|
||||
:name.sync="roleForm.sdr1UserNames"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.pzr1UserId"
|
||||
prop="pzr1UserName"
|
||||
timestamp="批准"
|
||||
title="批准"
|
||||
placeholder="请选择批准人"
|
||||
:name.sync="roleForm.pzr1UserName"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.djrUserIds"
|
||||
prop="djrUserNames"
|
||||
timestamp="责任对接人分配任务"
|
||||
title="责任对接人分配任务"
|
||||
placeholder="责任对接人分配任务"
|
||||
multiple
|
||||
:name.sync="roleForm.djrUserNames"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.glyUserId"
|
||||
prop="glyUserName"
|
||||
timestamp="管理员"
|
||||
title="管理员"
|
||||
:name.sync="roleForm.glyUserName"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.shr2UserIds"
|
||||
prop="shr2UserNames"
|
||||
timestamp="审核"
|
||||
title="审核"
|
||||
placeholder="请选择审核人"
|
||||
multiple
|
||||
:name.sync="roleForm.shr2UserNames"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.sdr2UserIds"
|
||||
prop="sdr2UserNames"
|
||||
timestamp="审定"
|
||||
title="审定"
|
||||
placeholder="请选择审定人"
|
||||
multiple
|
||||
:name.sync="roleForm.sdr2UserNames"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.pzr2UserId"
|
||||
prop="pzr2UserName"
|
||||
timestamp="批准"
|
||||
title="批准"
|
||||
placeholder="请选择批准人"
|
||||
:name.sync="roleForm.pzr2UserName"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<TimeLineFormItem
|
||||
:id.sync="roleForm.csrUserIds"
|
||||
prop="csrUserNames"
|
||||
timestamp="抄送"
|
||||
title="抄送"
|
||||
placeholder="请选择抄送人"
|
||||
:name.sync="roleForm.csrUserNames"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
</el-form>
|
||||
</el-timeline>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TimeLineFormItem from '@/components/hzwlComponents/TimeLineFormItem'
|
||||
export default {
|
||||
name: 'PersonInfo',
|
||||
components: {
|
||||
TimeLineFormItem
|
||||
},
|
||||
props: {
|
||||
roleForm: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
roleRules: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,218 @@
|
||||
<template>
|
||||
<el-drawer
|
||||
:title="title"
|
||||
:visible="showDrawer"
|
||||
:wrapperClosable="false"
|
||||
size="1000px"
|
||||
@close="onClose"
|
||||
>
|
||||
<div class="drawer-content">
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
label-width="150px"
|
||||
label-position="left"
|
||||
style="height: 100%"
|
||||
>
|
||||
<InputFormItem
|
||||
v-model="form.checkListName"
|
||||
class="form-item-first"
|
||||
prop="checkListName"
|
||||
label="核查清单名称"
|
||||
/>
|
||||
<UploadFormItem
|
||||
label="模板"
|
||||
:ids.sync="form.checklistTemplate"
|
||||
:names.sync="form.checklistTemplateName"
|
||||
/>
|
||||
<el-tabs v-model="activeName">
|
||||
<el-tab-pane label="核查清单" name="1" />
|
||||
<el-tab-pane label="人员信息" name="2" />
|
||||
</el-tabs>
|
||||
<Inventory v-show="activeName === '1'" :data="form.issueTrackList" />
|
||||
<PersonInfo v-show="activeName === '2'" ref="roleForm" :roleForm="roleForm" :roleRules="roleRules" />
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="drawer-footer">
|
||||
<el-button
|
||||
icon="el-icon-check"
|
||||
type="primary"
|
||||
size="mini"
|
||||
:loading="isSubmit"
|
||||
@click="onSubmit"
|
||||
>
|
||||
提交
|
||||
</el-button>
|
||||
<el-button icon="el-icon-close" size="mini" :loading="isSubmit" @click="onClose">取消</el-button>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import PersonInfo from './PersonInfo'
|
||||
import Inventory from './Inventory'
|
||||
export default {
|
||||
name: 'AddModel',
|
||||
components: {
|
||||
UploadFormItem,
|
||||
InputFormItem,
|
||||
PersonInfo,
|
||||
Inventory,
|
||||
},
|
||||
data () {
|
||||
const form = {
|
||||
checkListName: '',
|
||||
checklistTemplate: '',
|
||||
checklistTemplateName: '',
|
||||
issueTrackList: [],
|
||||
}
|
||||
const roleForm = {
|
||||
prcCreateUser: this.$store.getters.userInfo.account,
|
||||
prcCreateUserName: this.$store.getters.userInfo.userName,
|
||||
shr1UserIds: '',
|
||||
shr1UserNames: '',
|
||||
sdr1UserIds: '',
|
||||
sdr1UserNames: '',
|
||||
pzr1UserId: '',
|
||||
pzr1UserName: '',
|
||||
djrUserIds: '',
|
||||
djrUserNames: '',
|
||||
glyUserId: '',
|
||||
glyUserName: '',
|
||||
shr2UserIds: '',
|
||||
shr2UserNames: '',
|
||||
sdr2UserIds: '',
|
||||
sdr2UserNames: '',
|
||||
pzr2UserId: '',
|
||||
pzr2UserName: '',
|
||||
csrUserIds: '',
|
||||
csrUserNames: '',
|
||||
}
|
||||
const rules = {
|
||||
checkListName: [
|
||||
{ required: true, message: '核查清单名称不能为空', trigger: 'change' }
|
||||
],
|
||||
}
|
||||
const roleRules = {
|
||||
shr1UserNames: [
|
||||
{ required: true, message: '请选择审核人', trigger: 'change' },
|
||||
],
|
||||
sdr1UserNames: [
|
||||
{ required: true, message: '请选择审定人', trigger: 'change' },
|
||||
],
|
||||
pzr1UserName: [
|
||||
{ required: true, message: '请选择批准人', trigger: 'change' },
|
||||
],
|
||||
djrUserNames: [
|
||||
{ required: true, message: '请选择责任对接人', trigger: 'change' },
|
||||
],
|
||||
glyUserName: [
|
||||
{ required: true, message: '请选择管理员', trigger: 'change' },
|
||||
],
|
||||
shr2UserNames: [
|
||||
{ required: true, message: '请选择审核人', trigger: 'change' },
|
||||
],
|
||||
sdr2UserNames: [
|
||||
{ required: true, message: '请选择审定人', trigger: 'change' },
|
||||
],
|
||||
pzr2UserName: [
|
||||
{ required: true, message: '请选择批准人', trigger: 'change' },
|
||||
],
|
||||
csrUserNames: [
|
||||
{ required: true, message: '请选择抄送人', trigger: 'change' },
|
||||
],
|
||||
}
|
||||
return {
|
||||
title: '新增',
|
||||
showDrawer: false,
|
||||
isSubmit: false,
|
||||
form,
|
||||
roleForm,
|
||||
rules,
|
||||
roleRules,
|
||||
activeName: '1',
|
||||
url: {
|
||||
save: 'standardTrackingCheckList/save',
|
||||
update: 'standardTrackingCheckList/update',
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onClose () {
|
||||
this.showDrawer = false
|
||||
},
|
||||
add () {
|
||||
this.title = '新增'
|
||||
this.showDrawer = true
|
||||
},
|
||||
edit () {
|
||||
this.title = '编辑'
|
||||
this.showDrawer = true
|
||||
},
|
||||
onSubmit () {
|
||||
if (this.form.issueTrackList.length === 0) {
|
||||
return this.$message.warning('请添加核查清单')
|
||||
}
|
||||
this.$refs.form.validate(valid => {
|
||||
if (!valid)
|
||||
return this.$message.warning('请完善基础信息');
|
||||
this.$refs['roleForm'].$refs['userForm'].validate(valid => {
|
||||
if (!valid)
|
||||
return this.$message.warning('请完善人员信息');
|
||||
|
||||
const url = this.title === '新增' ? this.url.save : this.url.update
|
||||
const form = Object.assign(this.form, { roleForm: this.roleForm })
|
||||
const config = {
|
||||
_this: this,
|
||||
loading: 'isSubmit',
|
||||
}
|
||||
this.$http._postData(url, form, config).then(res => {
|
||||
if (res.ok) {
|
||||
this.$message.success('操作成功')
|
||||
this.showDrawer = false
|
||||
} else {
|
||||
this.$message.error(res.message)
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.drawer-content {
|
||||
padding: 0 19px;
|
||||
overflow-y: auto;
|
||||
flex: auto;
|
||||
/deep/ .el-form-item{
|
||||
margin-bottom: 0;
|
||||
color: #666;
|
||||
.el-form-item__label {
|
||||
line-height: 50px;
|
||||
}
|
||||
.el-form-item__content{
|
||||
line-height: 50px;
|
||||
}
|
||||
}
|
||||
.form-item-first {
|
||||
/deep/ .el-input__inner{
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.drawer-footer {
|
||||
width: 100%;
|
||||
padding: 0 20px;
|
||||
height: 70px;
|
||||
line-height: 69px;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
text-align: right;
|
||||
background: #fff;
|
||||
z-index: 999;
|
||||
}
|
||||
</style>
|
||||
@@ -1,27 +1,280 @@
|
||||
<template>
|
||||
<div class="standardTrackingList">
|
||||
<listTracking></listTracking>
|
||||
<div class="root">
|
||||
<div class="search-area">
|
||||
<el-form :modal="searchForm" :inline="true" class="label-input-form">
|
||||
<el-form-item label="核查清单名称" class="search-item">
|
||||
<el-input
|
||||
v-model="searchForm.checkListName"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="标准编号/政策文号" class="search-item">
|
||||
<el-input
|
||||
v-model="searchForm.lawCode"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="标准名称/政策名称" class="search-item">
|
||||
<el-input
|
||||
v-model="searchForm.lawName"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item class="search-item btn-box">
|
||||
<el-button
|
||||
v-btn-permission="'23e01cb6ac6bfcedd39537f236a769e5'"
|
||||
type="primary"
|
||||
class="common-button-primary"
|
||||
size="small"
|
||||
@click="onSearch"
|
||||
>
|
||||
查询
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item class="search-item btn-box">
|
||||
<el-button
|
||||
v-btn-permission="'41945d15f5cb658665ef4916f62354a2'"
|
||||
class="common-button-default"
|
||||
size="small"
|
||||
@click="onClear"
|
||||
>
|
||||
清空
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="action-bar">
|
||||
<el-button
|
||||
v-btn-permission="'226bcb0d4d1b5767183d51186f24c57a'"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="add"
|
||||
>
|
||||
<i class="el-icon-plus" />新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-btn-permission="''"
|
||||
size="mini"
|
||||
>
|
||||
模板下载
|
||||
</el-button>
|
||||
<el-button
|
||||
v-btn-permission="''"
|
||||
size="mini"
|
||||
>
|
||||
导入
|
||||
</el-button>
|
||||
<el-button
|
||||
v-btn-permission="''"
|
||||
size="mini"
|
||||
>
|
||||
导出
|
||||
</el-button>
|
||||
<el-button
|
||||
v-btn-permission="'bdc3bb8549669702642f86aa4323c568'"
|
||||
size="mini"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
<el-button
|
||||
v-btn-permission="''"
|
||||
size="mini"
|
||||
>
|
||||
流程下发
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="container">
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width:100%;height: calc(100% - 57px)"
|
||||
height="string"
|
||||
border
|
||||
class="drag-table"
|
||||
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px', padding: 0}"
|
||||
:cell-style="{padding: 0}"
|
||||
@sort-change="sortChange"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="55"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
type="index"
|
||||
width="55"
|
||||
label="序号"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="{scope, column, $index}">
|
||||
{{ ($index + 1) + (searchForm.page - 1) * searchForm.pageSize }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="checkListName"
|
||||
label="核查清单名称"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
>
|
||||
<template slot-scope="{row, column, $index}">
|
||||
<a class="table-jump" style="color: #2d8cf0" @click="handlePreview(row.id)">{{ row.checkListName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createUserId"
|
||||
label="创建人"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="modifyTime"
|
||||
label="更新时间"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="processIssuanceTime"
|
||||
label="流程下发时间"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="processCompleteTime"
|
||||
label="流程完成时间"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="processNum"
|
||||
label="流程编号"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
>
|
||||
<template slot-scope="{row, column, $index}">
|
||||
<a class="table-jump" style="color: #2d8cf0" @click="handlePreview(row.id)">{{ row.processNum }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="processStatus"
|
||||
label="流程状态"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
/>
|
||||
</el-table>
|
||||
<pagination :page="searchForm.page" :total="searchForm.total" @pageChange="pageChange" @pageSizeChange="pageSizeChange" />
|
||||
<loading :loading="loading">数据获取中...</loading>
|
||||
</div>
|
||||
<addModel ref="addModel" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import listTracking from "@/pages/regulatoryRepository/accessStandardsAndRegulations/page/listTracking";
|
||||
import addModel from './addModel'
|
||||
export default {
|
||||
name: 'StandardTrackingList',
|
||||
components: {
|
||||
listTracking
|
||||
addModel
|
||||
},
|
||||
data() {
|
||||
data () {
|
||||
const searchForm = {
|
||||
checkListName: '',
|
||||
lawCode: '',
|
||||
lawName: '',
|
||||
page: 1,
|
||||
pageSize: this.$store.getters.userInfo.configContent,
|
||||
total: 0,
|
||||
}
|
||||
return {
|
||||
searchForm,
|
||||
initSearchForm: JSON.parse(JSON.stringify(searchForm)),
|
||||
loading: false,
|
||||
url: {
|
||||
page: 'standardTrackingCheckList/page',
|
||||
save: 'standardTrackingCheckList/save',
|
||||
remove: 'standardTrackingCheckList/remove',
|
||||
getById: 'standardTrackingCheckList/getById',
|
||||
update: 'standardTrackingCheckList/update',
|
||||
exportTrackingChecklist: 'standardTrackingCheckList/exportTrackingChecklist',
|
||||
exportTemplateFile: 'standardTrackingCheckList/exportTemplateFile',
|
||||
},
|
||||
data: [],
|
||||
selectedList: [],
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
getData () {
|
||||
const config = {
|
||||
_this: this,
|
||||
loading: 'loading'
|
||||
}
|
||||
this.$http._getData(this.url.page, this.searchForm, config).then(res => {
|
||||
if(res.ok) {
|
||||
this.data = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
pageChange (page) {
|
||||
this.searchForm.page = page
|
||||
this.getData()
|
||||
},
|
||||
pageSizeChange (pageSize) {
|
||||
this.searchForm.pageSize = pageSize
|
||||
this.getData()
|
||||
},
|
||||
onSearch () {
|
||||
this.getData()
|
||||
},
|
||||
onClear () {
|
||||
this.searchForm = JSON.parse(JSON.stringify(this.initSearchForm))
|
||||
this.getData()
|
||||
},
|
||||
selectionChange (data) {
|
||||
this.selectedList = []
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
this.selectedList.push(data[i].id)
|
||||
}
|
||||
},
|
||||
sortChange ({ column, prop, order }) {
|
||||
this.searchForm.sortField = prop
|
||||
this.searchForm.sortMode = 'asc'
|
||||
if (order === 'descending') {
|
||||
this.searchForm.sortMode = 'desc'
|
||||
}
|
||||
if (!order) {
|
||||
this.searchForm.sortField = ''
|
||||
this.searchForm.sortMode = ''
|
||||
}
|
||||
this.getData()
|
||||
},
|
||||
add () {
|
||||
this.$refs.addModel.add()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.standardTrackingList {
|
||||
height: 100%;
|
||||
}
|
||||
.root{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.search-area {
|
||||
.search-item /deep/ .el-button--small {
|
||||
padding: 8px 15px !important;
|
||||
height: 30px !important;
|
||||
}
|
||||
}
|
||||
.action-bar /deep/ .el-button{
|
||||
height: 32px !important;
|
||||
}
|
||||
.container {
|
||||
flex: 1;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user