Commit b119838c authored by jiaxu.yan's avatar jiaxu.yan

fix: 70521 70520 70537 70536 70535 70534

parent d2a31c8f
...@@ -10,6 +10,7 @@ cartype ...@@ -10,6 +10,7 @@ cartype
cascader cascader
chexing chexing
Chexingdialog Chexingdialog
cnpm
colspan colspan
commandstats commandstats
commitlint commitlint
......
...@@ -10,5 +10,6 @@ VUE_APP_BASE_API = '/dev-api' ...@@ -10,5 +10,6 @@ VUE_APP_BASE_API = '/dev-api'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true
# 图片服务器地址 # 图片服务器地址
VUE_APP_IMAGE_API = http://49.232.167.247:22037 VUE_APP_IMAGE_API = http://49.232.167.247:443
VUE_APP_CLIENT_API = /client-api
...@@ -8,4 +8,6 @@ ENV = 'production' ...@@ -8,4 +8,6 @@ ENV = 'production'
VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_API = '/prod-api'
# 图片服务器地址 # 图片服务器地址
VUE_APP_IMAGE_API ='' VUE_APP_IMAGE_API ='/'
VUE_APP_CLIENT_API = 'http://10.12.48.78:22032/usecase'
...@@ -7,5 +7,6 @@ ENV = 'staging' ...@@ -7,5 +7,6 @@ ENV = 'staging'
# 中汽研安全检测平台管理系统/开发环境 # 中汽研安全检测平台管理系统/开发环境
VUE_APP_BASE_API = 'http://49.232.167.247:22032' VUE_APP_BASE_API = 'http://49.232.167.247:22032'
# 图片服务器地址 # 图片服务器地址
VUE_APP_IMAGE_API = http://49.232.167.247:22037 VUE_APP_IMAGE_API = 'http://49.232.167.247:22032'
VUE_APP_CLIENT_API = 'http://10.12.48.78:22032/usecase'
module.exports = {
configureWebpack: {
module: {
rules: [ // or "loaders" for webpack 1.x
{ test: /\.graphql|gql?$/,
exclude: /node_modules/,
loader: 'graphql-tag/loader' }
]
},
}
}
query GetSuiteList($offset: Int = 0, $limit: Int = 20, $search: String = "") {
suiteList: getUserCustomCaseSuiteList(
teamId: "team_items;1"
search: {offset: {offset: $offset, limit: $limit}, searchField: "name", search: $search}
) {
count
list: resultList {
id
name
lawType: layType
style
descriptionInfo
canModify
caseCount
updateTime
createTime
createUser
createUserId
}
}
}
...@@ -122,7 +122,7 @@ Vue.use(Element, { ...@@ -122,7 +122,7 @@ Vue.use(Element, {
Vue.config.productionTip = false Vue.config.productionTip = false
// 导入apollo-boost模块实例化AolloClient // 导入apollo-boost模块实例化ApolloClient
import ApolloClient from 'apollo-boost'; import ApolloClient from 'apollo-boost';
import VueApollo from 'vue-apollo' import VueApollo from 'vue-apollo'
...@@ -132,7 +132,7 @@ Vue.use(VueApollo); ...@@ -132,7 +132,7 @@ Vue.use(VueApollo);
// 请求graphql使用的apollo API // 请求graphql使用的apollo API
const apolloClient = new ApolloClient({ const apolloClient = new ApolloClient({
// 服务端Url // 服务端Url
uri: '/query', // uri: process.env.VUE_APP_CLIENT_API + "/query", //
}); });
......
<template> <template>
<page-standard> <page-standard>
<el-form <el-form ref="queryForm" :model="queryParams" size="small" :inline="true">
v-show="showSearch" <template v-if="showSearch">
ref="queryForm" <el-form-item label="检验依据">
:model="queryParams" <el-select
size="small" v-model="queryParams.standardId"
:inline="true" clearable
> style="width: 100%"
<el-form-item label="检验依据"> @change="loadData"
<el-select >
v-model="queryParams.ask" <el-option
clearable v-for="(item, key) in standardList"
style="width: 100%" :key="key"
@change="loadData" :value="item.id"
> :label="item.name"
<el-option ></el-option>
key="1" </el-select>
value="1" </el-form-item>
label="汽车整车信息安全技术要求" <el-form-item prop="status" label="任务编号">
></el-option> <el-input
<el-option key="2" value="2" label="xxxxx软件升级要求"></el-option> v-model="queryParams.taskNo"
</el-select> placeholder="请输入"
</el-form-item> clearable
<el-form-item prop="status" label="任务编号"> @keyup.enter.native="handleQuery"
<el-input
v-model="queryParams.deptName"
placeholder="请输入"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="status" label="任务名称">
<el-input
v-model="queryParams.deptName"
placeholder="请输入"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="status" label="车辆型号">
<el-input
v-model="queryParams.deptName"
placeholder="请输入"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="status" label="检验项目">
<el-select
v-model="queryParams.taskStatus"
placeholder="请选择"
clearable
>
<el-option
v-for="dict in dict.type.system_task_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/> />
</el-select> </el-form-item>
</el-form-item> <el-form-item prop="status" label="任务名称">
<el-form-item> <el-input
<el-button v-model="queryParams.taskName"
type="primary" placeholder="请输入"
icon="el-icon-search" clearable
size="mini" @keyup.enter.native="handleQuery"
@click="handleQuery" />
>查询</el-button </el-form-item>
> <el-form-item prop="status" label="车辆型号">
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"> <el-input
重置 v-model="queryParams.productModel"
</el-button> placeholder="请输入"
</el-form-item> clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="status" label="检验项目">
<el-select
v-model="queryParams.inspectionItem"
placeholder="请选择"
clearable
>
<el-option
v-for="dict in dict.type.inspection_item"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>查询</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">
重置
</el-button>
</el-form-item>
</template>
<!-- <el-form-item>
<right-toolbar
:show-search.sync="showSearch"
@queryTable="loadData"
></right-toolbar>
</el-form-item> -->
</el-form> </el-form>
<div v-loading="loading"> <div v-loading="loading">
<template v-if="tableData.length"> <template v-if="tableData.length">
...@@ -113,11 +115,11 @@ ...@@ -113,11 +115,11 @@
<div class="cell-label">任务周期</div> <div class="cell-label">任务周期</div>
<div class="cell-value"> <div class="cell-value">
<div class="w-100"> <div class="w-100">
{{ parseTime(item.taskBeginTime) }} {{ item.taskBeginTime }}
</div> </div>
<div class="w-100" style="text-align: center"></div> <div class="w-100" style="text-align: center"></div>
<div class="w-100"> <div class="w-100">
{{ parseTime(item.taskEndTime) }} {{ item.taskEndTime }}
</div> </div>
</div> </div>
</div> </div>
...@@ -245,8 +247,9 @@ ...@@ -245,8 +247,9 @@
</template> </template>
<script> <script>
import page from '@/mixins/page' import page from '@/mixins/page'
import { mapGetters } from 'vuex'
export default { export default {
dicts: ['system_task_status', 'sys_scene_type', 'task_type'], dicts: ['sys_scene_type', 'task_type', 'inspection_item'],
mixins: [page], mixins: [page],
data() { data() {
return { return {
...@@ -255,7 +258,15 @@ export default { ...@@ -255,7 +258,15 @@ export default {
tableData: [] tableData: []
} }
}, },
computed: {
...mapGetters(['userId', 'standardList'])
},
watch: {}, watch: {},
created() {
this.$store.dispatch('standard/setStandardList')
},
methods: { methods: {
/* 跳转到问卷详情*/ /* 跳转到问卷详情*/
goNext(url) { goNext(url) {
......
...@@ -82,7 +82,9 @@ ...@@ -82,7 +82,9 @@
:key="index" :key="index"
class="task-card-box" class="task-card-box"
> >
<div class="inspection-standard">检验依据:《{{ item.name }}</div> <div class="inspection-standard">
检验依据:{{ item.standardNo }}{{ item.name }}
</div>
<div class="card-content"> <div class="card-content">
<div class="card-cell"> <div class="card-cell">
<div class="cell-label">任务编号</div> <div class="cell-label">任务编号</div>
...@@ -106,20 +108,20 @@ ...@@ -106,20 +108,20 @@
<div class="cell-label">车辆型号</div> <div class="cell-label">车辆型号</div>
<div <div
class="cell-value" class="cell-value"
:title="item.taskName ? item.taskName : '---'" :title="item.productModel ? item.productModel : '---'"
> >
{{ item.taskName ? item.taskName : '---' }} {{ item.productModel ? item.productModel : '---' }}
</div> </div>
</div> </div>
<div class="card-cell"> <div class="card-cell">
<div class="cell-label">任务周期</div> <div class="cell-label">任务周期</div>
<div class="cell-value"> <div class="cell-value">
<div class="w-100"> <div class="w-100">
{{ parseTime(item.taskBeginTime) }} {{ item.taskBeginTime }}
</div> </div>
<div class="w-100" style="text-align: center"></div> <div class="w-100" style="text-align: center"></div>
<div class="w-100"> <div class="w-100">
{{ parseTime(item.taskEndTime) }} {{ item.taskEndTime }}
</div> </div>
</div> </div>
</div> </div>
......
...@@ -82,7 +82,9 @@ ...@@ -82,7 +82,9 @@
:key="index" :key="index"
class="task-card-box" class="task-card-box"
> >
<div class="inspection-standard">检验依据:《{{ item.name }}</div> <div class="inspection-standard">
检验依据:{{ item.standardNo }}{{ item.name }}
</div>
<div class="card-content"> <div class="card-content">
<div class="card-cell"> <div class="card-cell">
<div class="cell-label">任务编号</div> <div class="cell-label">任务编号</div>
......
<template>
<div class="app-container">
<el-card>
<div slot="header" class="clearfix">
<span>企业留档文件(所属任务:广汽丰田体系审查)</span>
<el-button
icon="el-icon-back"
class="back-btn"
type="text"
@click="handleBack"
>
返回
</el-button>
<el-button class="back-btn" icon="el-icon-download" type="primary">
下载文件
</el-button>
</div>
<!-- table部分 -->
<table border="1">
<thead>
<tr>
<th class="one-column" rowspan="2">文件名称</th>
<th class="two-column">文件目录</th>
<th class="three-column">标准章节</th>
<th class="four-column">标准要求</th>
<th class="five-column">审查要点</th>
</tr>
</thead>
<tbody>
<tr>
<td class="one-column" rowspan="2">文件</td>
<td class="two-column">1.1-1.5</td>
<td class="three-column">5.1</td>
<td class="four-column">
车辆制造商应具备车辆全生命周期的汽车信息安全管理体系
</td>
<td class="five-column">车辆制造商是否建立汽车信息安全管理体系</td>
</tr>
<tr>
<td class="two-column">1.6</td>
<td class="three-column">5.1</td>
<td class="four-column">
车辆制造商应具备车辆全生命周期的汽车信息安全管理体系
</td>
<td class="five-column">
车辆制造商是否针对正式发布的汽车信息安全管理体系进行了试运行
</td>
</tr>
</tbody>
</table>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {}
},
methods: {
handleBack() {
this.$router.go(-1)
}
}
}
</script>
<style scoped lang="scss">
.app-container {
.back-btn {
margin-left: 10px;
float: right;
}
}
table {
border-collapse: collapse;
width: 100%;
}
th,
td {
border: 1px solid black;
padding: 8px;
text-align: left;
width: 300px;
}
.five-column {
width: 350px;
}
.four-column {
width: 350px;
}
.three-column {
width: 300px;
}
.two-column {
width: 150px;
}
.one-column {
width: 200px;
}
</style>
...@@ -13,15 +13,30 @@ ...@@ -13,15 +13,30 @@
</template> </template>
<script> <script>
import { GetSuiteList } from '@/api/graphql/client.graphql'
export default { export default {
name: 'Index', name: 'Index',
data() { data() {
return { return {
id: this.$route.query, id: this.$route.query,
url: 'http://10.12.48.80:8089/car/caseManage/case/casePublishDetail/case_items;375' url: 'https://10.12.48.78/usecase/car/caseManage/case/casePublishDetail/case_items;375'
} }
}, },
mounted() {} mounted() {
this.getSuiteList()
},
methods: {
getSuiteList() {
this.$apollo
.query({
fetchPolicy: 'no-cache',
query: GetSuiteList
})
.then(res => {
console.log(res)
})
}
}
} }
</script> </script>
......
...@@ -93,7 +93,9 @@ ...@@ -93,7 +93,9 @@
:key="index" :key="index"
class="task-card-box" class="task-card-box"
> >
<div class="inspection-standard">检验依据:《{{ item.name }}</div> <div class="inspection-standard">
检验依据:{{ item.standardNo }}{{ item.name }}
</div>
<div v-if="item.taskStatus !== 'FINISH'" class="card-content"> <div v-if="item.taskStatus !== 'FINISH'" class="card-content">
<div class="card-cell"> <div class="card-cell">
<div class="cell-label">任务编号</div> <div class="cell-label">任务编号</div>
...@@ -371,20 +373,20 @@ ...@@ -371,20 +373,20 @@
<div class="cell-label">车辆型号</div> <div class="cell-label">车辆型号</div>
<div <div
class="cell-value" class="cell-value"
:title="item.taskName ? item.taskName : '---'" :title="item.productModel ? item.productModel : '---'"
> >
{{ item.taskName ? item.taskName : '---' }} {{ item.productModel ? item.productModel : '---' }}
</div> </div>
</div> </div>
<div class="card-cell"> <div class="card-cell">
<div class="cell-label">任务周期</div> <div class="cell-label">任务周期</div>
<div class="cell-value"> <div class="cell-value">
<div class="w-100"> <div class="w-100">
{{ parseTime(item.taskBeginTime) }} {{ item.taskBeginTime }}
</div> </div>
<div class="w-100" style="text-align: center"></div> <div class="w-100" style="text-align: center"></div>
<div class="w-100"> <div class="w-100">
{{ parseTime(item.taskEndTime) }} {{ item.taskEndTime }}
</div> </div>
</div> </div>
</div> </div>
......
...@@ -40,7 +40,14 @@ module.exports = { ...@@ -40,7 +40,14 @@ module.exports = {
pathRewrite: { pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: '' ['^' + process.env.VUE_APP_BASE_API]: ''
} }
} },
[process.env.VUE_APP_CLIENT_API]: {
target: `http://10.12.48.78:443/usecase`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_CLIENT_API]: ''
}
},
}, },
disableHostCheck: true, disableHostCheck: true,
// port: port, // port: port,
...@@ -104,46 +111,50 @@ module.exports = { ...@@ -104,46 +111,50 @@ module.exports = {
symbolId: 'icon-[name]' symbolId: 'icon-[name]'
}) })
.end() .end()
config.module.rule('graphql')
.test(/\.graphql$/)
.use('graphql-tag/loader')
.loader('graphql-tag/loader')
.end();
config.when(process.env.NODE_ENV !== 'development', config => { config.when(process.env.NODE_ENV !== 'development', config => {
config config
.plugin('ScriptExtHtmlWebpackPlugin') .plugin('ScriptExtHtmlWebpackPlugin')
.after('html') .after('html')
.use('script-ext-html-webpack-plugin', [{ .use('script-ext-html-webpack-plugin', [{
// `runtime` must same as runtimeChunk name. default is `runtime` // `runtime` must same as runtimeChunk name. default is `runtime`
inline: /runtime\..*\.js$/ inline: /runtime\..*\.js$/
}]) }])
.end() .end()
config.optimization.splitChunks({ config.optimization.splitChunks({
chunks: 'all', chunks: 'all',
cacheGroups: { cacheGroups: {
libs: { libs: {
name: 'chunk-libs', name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/, test: /[\\/]node_modules[\\/]/,
priority: 10, priority: 10,
chunks: 'initial' // only package third parties that are initially dependent chunks: 'initial' // only package third parties that are initially dependent
}, },
elementUI: { elementUI: {
name: 'chunk-elementUI', // split elementUI into a single package name: 'chunk-elementUI', // split elementUI into a single package
test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
priority: 20 // the weight needs to be larger than libs and app or it will be packaged into libs or app priority: 20 // the weight needs to be larger than libs and app or it will be packaged into libs or app
}, },
commons: { commons: {
name: 'chunk-commons', name: 'chunk-commons',
test: resolve('src/components'), // can customize your rules test: resolve('src/components'), // can customize your rules
minChunks: 3, // minimum common number minChunks: 3, // minimum common number
priority: 5, priority: 5,
reuseExistingChunk: true reuseExistingChunk: true
}
}
})
config.optimization.runtimeChunk('single'),
{
from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
to: './' //到根目录下
} }
}
})
config.optimization.runtimeChunk('single'),
{
from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
to: './' //到根目录下
}
}) })
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment