Signed-off-by: Logaxn <logaxn@foxmail.com>
This commit is contained in:
parent
49ae4d9aee
commit
08e09565bd
.gitignore
.idea
build
src
|
@ -12,7 +12,7 @@ test/e2e/reports
|
||||||
selenium-debug.log
|
selenium-debug.log
|
||||||
|
|
||||||
# Editor directories and files
|
# Editor directories and files
|
||||||
.idea
|
/.idea/workspace.xml
|
||||||
.vscode
|
.vscode
|
||||||
*.suo
|
*.suo
|
||||||
*.ntvs*
|
*.ntvs*
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<code_scheme name="Project" version="173">
|
||||||
|
<option name="RIGHT_MARGIN" value="250" />
|
||||||
|
<option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="true" />
|
||||||
|
<codeStyleSettings language="HTML">
|
||||||
|
<indentOptions>
|
||||||
|
<option name="INDENT_SIZE" value="2" />
|
||||||
|
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||||
|
<option name="TAB_SIZE" value="2" />
|
||||||
|
</indentOptions>
|
||||||
|
</codeStyleSettings>
|
||||||
|
<codeStyleSettings language="JavaScript">
|
||||||
|
<indentOptions>
|
||||||
|
<option name="INDENT_SIZE" value="2" />
|
||||||
|
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
||||||
|
<option name="TAB_SIZE" value="2" />
|
||||||
|
</indentOptions>
|
||||||
|
</codeStyleSettings>
|
||||||
|
<codeStyleSettings language="PHP">
|
||||||
|
<option name="CLASS_BRACE_STYLE" value="1" />
|
||||||
|
<option name="METHOD_BRACE_STYLE" value="1" />
|
||||||
|
</codeStyleSettings>
|
||||||
|
</code_scheme>
|
||||||
|
</component>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<state>
|
||||||
|
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||||
|
</state>
|
||||||
|
</component>
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
|
||||||
|
</project>
|
|
@ -0,0 +1,15 @@
|
||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="HtmlUnknownAttribute" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
<option name="myValues">
|
||||||
|
<value>
|
||||||
|
<list size="1">
|
||||||
|
<item index="0" class="java.lang.String" itemvalue="slot-scope" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</option>
|
||||||
|
<option name="myCustomValuesEnabled" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
</profile>
|
||||||
|
</component>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JavaScriptLibraryMappings">
|
||||||
|
<includedPredefinedLibrary name="Node.js Core" />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JavaScriptSettings">
|
||||||
|
<option name="languageLevel" value="ES6" />
|
||||||
|
</component>
|
||||||
|
<component name="WebPackConfiguration">
|
||||||
|
<option name="path" value="$PROJECT_DIR$/build/webpack.dev.conf.js" />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/zealouscrm-vue.iml" filepath="$PROJECT_DIR$/.idea/zealouscrm-vue.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
|
@ -41,7 +41,8 @@ module.exports = {
|
||||||
},
|
},
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
...(config.dev.useEslint ? [createLintingRule()] : []),
|
// 暂时禁用 Eslint todo
|
||||||
|
// ...(config.dev.useEslint ? [createLintingRule()] : []),
|
||||||
{
|
{
|
||||||
test: /\.vue$/,
|
test: /\.vue$/,
|
||||||
loader: 'vue-loader',
|
loader: 'vue-loader',
|
||||||
|
|
|
@ -26,6 +26,8 @@ const messages = {
|
||||||
}
|
}
|
||||||
|
|
||||||
const i18n = new VueI18n({
|
const i18n = new VueI18n({
|
||||||
|
// 暂时隐藏 i18n 警告 todo
|
||||||
|
silentTranslationWarn: true,
|
||||||
// set locale
|
// set locale
|
||||||
// options: en | zh | es
|
// options: en | zh | es
|
||||||
locale: Cookies.get('language') || 'en',
|
locale: Cookies.get('language') || 'en',
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
<el-tag>{{ scope.row.type | typeFilter }}</el-tag>
|
<el-tag>{{ scope.row.type | typeFilter }}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column :label="$t('table.author')" width="110px" align="center">
|
<el-table-column :label="$t('giftList.giftName')" width="110px" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.author }}</span>
|
<span>{{ scope.row.author }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
@ -81,7 +81,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
|
<pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList"/>
|
||||||
|
|
||||||
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
|
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
|
||||||
<el-form ref="dataForm" :rules="rules" :model="temp" label-position="left" label-width="70px" style="width: 400px; margin-left:50px;">
|
<el-form ref="dataForm" :rules="rules" :model="temp" label-position="left" label-width="70px" style="width: 400px; margin-left:50px;">
|
||||||
|
@ -128,28 +128,32 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { fetchList, fetchPv, createArticle, updateArticle } from '@/api/article'
|
import {fetchList, fetchPv, createArticle, updateArticle} from '@/api/article'
|
||||||
import waves from '@/directive/waves' // Waves directive
|
import waves from '@/directive/waves' // Waves directive
|
||||||
import { parseTime } from '@/utils'
|
import {parseTime} from '@/utils'
|
||||||
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
|
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
|
||||||
|
|
||||||
const calendarTypeOptions = [
|
import local from './local'
|
||||||
{ key: 'CN', display_name: 'China' },
|
|
||||||
{ key: 'US', display_name: 'USA' },
|
|
||||||
{ key: 'JP', display_name: 'Japan' },
|
|
||||||
{ key: 'EU', display_name: 'Eurozone' }
|
|
||||||
]
|
|
||||||
|
|
||||||
// arr to obj ,such as { CN : "China", US : "USA" }
|
const viewName = 'giftList'
|
||||||
const calendarTypeKeyValue = calendarTypeOptions.reduce((acc, cur) => {
|
|
||||||
|
const calendarTypeOptions = [
|
||||||
|
{key: 'CN', display_name: 'China'},
|
||||||
|
{key: 'US', display_name: 'USA'},
|
||||||
|
{key: 'JP', display_name: 'Japan'},
|
||||||
|
{key: 'EU', display_name: 'Eurozone'}
|
||||||
|
]
|
||||||
|
|
||||||
|
// arr to obj ,such as { CN : "China", US : "USA" }
|
||||||
|
const calendarTypeKeyValue = calendarTypeOptions.reduce((acc, cur) => {
|
||||||
acc[cur.key] = cur.display_name
|
acc[cur.key] = cur.display_name
|
||||||
return acc
|
return acc
|
||||||
}, {})
|
}, {})
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ComplexTable',
|
name: 'ComplexTable',
|
||||||
components: { Pagination },
|
components: {Pagination},
|
||||||
directives: { waves },
|
directives: {waves},
|
||||||
filters: {
|
filters: {
|
||||||
statusFilter(status) {
|
statusFilter(status) {
|
||||||
const statusMap = {
|
const statusMap = {
|
||||||
|
@ -179,7 +183,7 @@ export default {
|
||||||
},
|
},
|
||||||
importanceOptions: [1, 2, 3],
|
importanceOptions: [1, 2, 3],
|
||||||
calendarTypeOptions,
|
calendarTypeOptions,
|
||||||
sortOptions: [{ label: 'ID Ascending', key: '+id' }, { label: 'ID Descending', key: '-id' }],
|
sortOptions: [{label: 'ID Ascending', key: '+id'}, {label: 'ID Descending', key: '-id'}],
|
||||||
statusOptions: ['published', 'draft', 'deleted'],
|
statusOptions: ['published', 'draft', 'deleted'],
|
||||||
showReviewer: false,
|
showReviewer: false,
|
||||||
temp: {
|
temp: {
|
||||||
|
@ -200,14 +204,22 @@ export default {
|
||||||
dialogPvVisible: false,
|
dialogPvVisible: false,
|
||||||
pvData: [],
|
pvData: [],
|
||||||
rules: {
|
rules: {
|
||||||
type: [{ required: true, message: 'type is required', trigger: 'change' }],
|
type: [{required: true, message: 'type is required', trigger: 'change'}],
|
||||||
timestamp: [{ type: 'date', required: true, message: 'timestamp is required', trigger: 'change' }],
|
timestamp: [{type: 'date', required: true, message: 'timestamp is required', trigger: 'change'}],
|
||||||
title: [{ required: true, message: 'title is required', trigger: 'blur' }]
|
title: [{required: true, message: 'title is required', trigger: 'blur'}]
|
||||||
},
|
},
|
||||||
downloadLoading: false
|
downloadLoading: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
if (!this.$i18n.getLocaleMessage('en')[viewName]) {
|
||||||
|
for (let lang in local) {
|
||||||
|
const obj = {}
|
||||||
|
obj[viewName] = local[lang]
|
||||||
|
this.$i18n.mergeLocaleMessage(lang, obj)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -235,7 +247,7 @@ export default {
|
||||||
row.status = status
|
row.status = status
|
||||||
},
|
},
|
||||||
sortChange(data) {
|
sortChange(data) {
|
||||||
const { prop, order } = data
|
const {prop, order} = data
|
||||||
if (prop === 'id') {
|
if (prop === 'id') {
|
||||||
this.sortByID(order)
|
this.sortByID(order)
|
||||||
}
|
}
|
||||||
|
@ -358,5 +370,5 @@ export default {
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
export default {
|
||||||
|
en: {
|
||||||
|
giftName: 'Name'
|
||||||
|
},
|
||||||
|
zh: {
|
||||||
|
giftName: '礼品'
|
||||||
|
},
|
||||||
|
es: {
|
||||||
|
giftName: 'Gift'
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue