Browse Source

refactor: 修改命名和响应式数据

min
Min5203 4 years ago
parent
commit
a063e9b1c9
  1. 17
      package-lock.json
  2. 2
      package.json
  3. 2
      src/App.vue
  4. 22
      src/components/navbar.vue
  5. 20
      src/routers/index.js
  6. 4
      src/views/Index.vue
  7. 0
      src/views/index-list/develop.vue
  8. 2
      src/views/index-list/download-mould.vue
  9. 124
      src/views/index-list/plugin-shop.vue
  10. 27
      src/views/index-list/upload.vue
  11. 109
      src/views/tablist/plugshop.vue
  12. 2
      src/views/user/sign-in.vue
  13. 10
      yarn.lock

17
package-lock.json

@ -33,7 +33,7 @@
"eslint-plugin-html": "^6.2.0",
"eslint-plugin-import": "^2.25.2",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-vue": "^7.19.1",
"eslint-plugin-vue": "^7.20.0",
"husky": "^7.0.2",
"lint-staged": "^11.2.3",
"prettier": "^2.4.1",
@ -4870,11 +4870,10 @@
}
},
"node_modules/eslint-plugin-vue": {
"version": "7.19.1",
"resolved": "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-7.19.1.tgz",
"integrity": "sha1-Q1+yznEoQqlTCyjqy4g2gOjqpPM=",
"version": "7.20.0",
"resolved": "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-7.20.0.tgz",
"integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==",
"dev": true,
"license": "MIT",
"dependencies": {
"eslint-utils": "^2.1.0",
"natural-compare": "^1.4.0",
@ -4885,7 +4884,7 @@
"node": ">=8.10"
},
"peerDependencies": {
"eslint": "^6.2.0 || ^7.0.0 || ^8.0.0-0"
"eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/eslint-plugin-vue/node_modules/semver": {
@ -12767,9 +12766,9 @@
}
},
"eslint-plugin-vue": {
"version": "7.19.1",
"resolved": "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-7.19.1.tgz",
"integrity": "sha1-Q1+yznEoQqlTCyjqy4g2gOjqpPM=",
"version": "7.20.0",
"resolved": "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-7.20.0.tgz",
"integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==",
"dev": true,
"requires": {
"eslint-utils": "^2.1.0",

2
package.json

@ -40,7 +40,7 @@
"eslint-plugin-html": "^6.2.0",
"eslint-plugin-import": "^2.25.2",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-vue": "^7.19.1",
"eslint-plugin-vue": "^7.20.0",
"husky": "^7.0.2",
"lint-staged": "^11.2.3",
"prettier": "^2.4.1",

2
src/App.vue

@ -1,5 +1,5 @@
<template>
<el-config-provider :locale="local">
<el-config-provider>
<el-container>
<router-view></router-view>
</el-container>

22
src/components/navbar.vue

@ -2,10 +2,10 @@
<div class="flex items-center justify-between pr-5 shadow-sm">
<!-- <h1 class="text-lg font-medium py-3 px-6"></h1> -->
<el-menu :default-active="activeIndex" class="el-menu-demo flex-1" mode="horizontal">
<el-menu-item index="1" @click="toshop">插件商城</el-menu-item>
<el-menu-item index="2" @click="todevelop">开发教程</el-menu-item>
<el-menu-item index="3" @click="todown">下载模板</el-menu-item>
<el-menu-item index="4" @click="toup">上传插件</el-menu-item>
<el-menu-item index="1" @click="toShop">插件商城</el-menu-item>
<el-menu-item index="2" @click="toDevelop">开发教程</el-menu-item>
<el-menu-item index="3" @click="toDown">下载模板</el-menu-item>
<el-menu-item index="4" @click="toUp">上传插件</el-menu-item>
</el-menu>
<el-dropdown>
<span class="flex items-center">
@ -52,19 +52,19 @@ function signOut() {
router.push({ name: 'signin' });
}
function toshop() {
router.push({ name: 'plugshop' });
function toShop() {
router.push({ name: 'plugin-shop' });
}
function todevelop() {
router.push({ name: 'devepage' });
function toDevelop() {
router.push({ name: 'develop' });
}
function todown() {
router.push({ name: 'downloadpage' });
function toDown() {
router.push({ name: 'download-mould' });
}
function toup() {
function toUp() {
router.push({ name: 'upload' });
}
</script>

20
src/routers/index.js

@ -45,24 +45,24 @@ const router = createRouter({
component: () => import('views/Index.vue'),
children: [
{
path: '/store/home/plugshop',
name: 'plugshop',
component: () => import('views/tablist/plugshop.vue'),
path: '/store/home/plugin-shop',
name: 'plugin-shop',
component: () => import('views/index-list/plugin-shop.vue'),
},
{
path: '/store/home/devepage',
name: 'devepage',
component: () => import('views/tablist/devepage.vue'),
path: '/store/home/develop',
name: 'develop',
component: () => import('views/index-list/develop.vue'),
},
{
path: '/store/home/downloadpage',
name: 'downloadpage',
component: () => import('views/tablist/downloadpage.vue'),
path: '/store/home/download-mould',
name: 'download-mould',
component: () => import('views/index-list/download-mould.vue'),
},
{
path: '/store/home/upload',
name: 'upload',
component: () => import('views/tablist/upload.vue'),
component: () => import('views/index-list/upload.vue'),
},
],
},

4
src/views/Index.vue

@ -21,12 +21,12 @@ export default {};
</script>
<style>
.el-main {
padding: 5rem 12rem;
padding: 2rem 12rem;
/* background-color: #ff6700; */
overflow: hidden;
}
.top {
padding: 5rem 10rem;
padding: 2rem 10rem;
width: 100%;
}
</style>

0
src/views/tablist/devepage.vue → src/views/index-list/develop.vue

2
src/views/tablist/downloadpage.vue → src/views/index-list/download-mould.vue

@ -1 +1,3 @@
<template>下载模板</template>
<style></style>

124
src/views/index-list/plugin-shop.vue

@ -0,0 +1,124 @@
<template>
<div class="flex flex-1 py-10">
<el-input v-model="keyword" placeholder="请输入内容" />
<el-select v-model="industry" filterable placeholder="请选择行业">
<el-option v-for="item in industryList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
<el-select v-model="sort" filterable placeholder="请选择分类">
<el-option v-for="item in sortList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
<el-button type="primary" size="small" class="w-60px h-40px">搜索</el-button>
</div>
<div class="shop-content flex py-5">
<img src="@/assets/u1.jpg" alt="" class="shop-left h-90 border-20 p-1 box-border" />
<div class="shop-right ml-6">
<div>
<span class="text-2xl font-semibold">{{ pluginName }}</span> <span class="ml-5">{{ versionNumber }}</span>
</div>
<p class="h-13 mt-7 desc">
<span> 描述</span> <span>{{ describe }}</span>
</p>
<div class="mt-7">
<el-tag v-for="item in tags" :type="item.btnType" class="mr-3" :key="item.name">{{ item.name }}</el-tag>
</div>
<p class="mt-7">
<span>行业:</span> <span>{{ industryName }}</span> <span class="ml-8">分类:</span> <span>{{ sortName }}</span>
</p>
<p class="mt-7">
<span>更新日期:</span> <span>{{ update }}</span> <span class="ml-8">作者:</span> <span>{{ owner }}</span>
</p>
<div class="mt-10">
<el-button type="primary">下载</el-button>
</div>
</div>
</div>
<div class="pagination mt-15 flex flex-row-reverse">
<el-config-provider :locale="zhCn">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:page-sizes="[10, 20, 30, 40]"
:page-size="20"
layout="total, sizes, prev, pager, next, jumper"
:total="200"
>
</el-pagination>
</el-config-provider>
</div>
</template>
<script lang="ts" setup="true">
import { ref } from 'vue';
import { ElConfigProvider } from 'element-plus';
import zhCn from 'element-plus/lib/locale/lang/zh-cn';
const keyword = ref('');
const industry = ref('');
const sort = ref('');
const pluginName = ref('插件名称');
const versionNumber = ref('版本号');
const industryName = ref('数字医疗');
const sortName = ref('签到');
const update = ref('2021年12月20日');
const owner = ref('传控电子');
const describe = ref(
'In my dual profession as an educator and health care , I have worked with numerous children infected with the virus that causes AIDS.',
);
const tags = ref([
{ btnType: '', name: '医疗' },
{ btnType: 'success', name: '打卡' },
{ btnType: 'warning', name: '签到' },
]);
const industryList = [
{
value: '行业一',
label: '行业一',
},
{
value: '行业二',
label: '行业二',
},
{
value: '行业三',
label: '行业三',
},
];
const sortList = [
{
value: '分类一',
label: '分类一',
},
{
value: '分类二',
label: '分类二',
},
{
value: '分类三',
label: '分类三',
},
];
const handleSizeChange = val => {
console.log(val);
};
const handleCurrentChange = val => {
console.log(val);
};
</script>
<style scoped>
.el-input {
width: 20%;
margin-right: 2rem;
}
.el-select {
margin-right: 2rem;
width: 20%;
}
.desc {
overflow: hidden;
}
.shop-left {
width: 35%;
}
</style>

27
src/views/tablist/upload.vue → src/views/index-list/upload.vue

@ -32,19 +32,19 @@
</el-select>
</el-form-item>
</div>
<el-form-item label="标签:" class="font-semibold tags" prop="tags">
<el-form-item label="标签:" class="font-semibold" prop="tags">
<el-select v-model="form.tags" multiple filterable allow-create default-first-option placeholder="请选择标签">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="HTML:" class="font-semibold" prop="htmlcodes">
<el-input v-model="form.htmlcodes" type="textarea" placeholder="请输入HTML代码片段"></el-input>
<el-form-item label="HTML:" class="font-semibold" prop="htmlCodes">
<el-input v-model="form.htmlCodes" type="textarea" placeholder="请输入HTML代码片段"></el-input>
</el-form-item>
<el-form-item label="JS:" class="font-semibold" prop="jscodes">
<el-input v-model="form.jscodes" type="textarea" placeholder="请输入JS代码片段"></el-input>
<el-form-item label="JS:" class="font-semibold" prop="jsCodes">
<el-input v-model="form.jsCodes" type="textarea" placeholder="请输入JS代码片段"></el-input>
</el-form-item>
<el-form-item label="CSS:" class="font-semibold" prop="csscodes">
<el-input v-model="form.csscodes" type="textarea" placeholder="请输入CSS代码片段"></el-input>
<el-form-item label="CSS:" class="font-semibold" prop="cssCodes">
<el-input v-model="form.cssCodes" type="textarea" placeholder="请输入CSS代码片段"></el-input>
</el-form-item>
<el-form-item> <el-switch v-model="form.delivery" class="mr-3"></el-switch> 是否压缩代码 </el-form-item>
<el-form-item>
@ -67,9 +67,9 @@ const form = reactive({
region: '',
sort: '',
tags: '',
htmlcodes: '',
jscodes: '',
csscodes: '',
htmlCodes: '',
jsCodes: '',
cssCodes: '',
delivery: '',
});
@ -79,17 +79,16 @@ const rules = {
region: [{ required: true, message: '请选择行业', trigger: 'blur' }],
sort: [{ required: true, message: '请选择分类', trigger: 'blur' }],
tags: [{ required: true, message: '请选择标签', trigger: 'blur' }],
htmlcodes: [{ required: true, message: '请输入HTML代码', trigger: 'blur' }],
jscodes: [{ required: true, message: '请输入JS代码', trigger: 'blur' }],
htmlCodes: [{ required: true, message: '请输入HTML代码', trigger: 'blur' }],
jsCodes: [{ required: true, message: '请输入JS代码', trigger: 'blur' }],
};
const onSubmit = () => {
console.log('onSubmit');
formRef.value.validate(true);
};
const resetForm = () => {
formRef.value.resetFields();
};
const options = [
{
value: 'HTML',

109
src/views/tablist/plugshop.vue

@ -1,109 +0,0 @@
<template>
<div class="serch flex flex-1 py-10">
<el-select
v-model="value"
multiple
filterable
remote
reserve-keyword
placeholder="请输入内容"
:remote-method="remoteMethod"
:loading="loading"
>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
<el-select v-model="value" filterable placeholder="请选择行业">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
<el-select
v-model="value"
multiple
filterable
remote
reserve-keyword
placeholder="请选择分类"
:remote-method="remoteMethod"
:loading="loading"
>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
<el-button type="primary" size="small" class="serch-btn w-60px h-40px">搜索</el-button>
</div>
<div class="shop-content flex py-5">
<img src="@/assets/u1.jpg" alt="" class="shop-left w-100 h-90 border-20 p-1 box-border" />
<div class="shop-right ml-5">
<div><span class="text-2xl font-semibold">插件名称</span> <span class="ml-5">版本号</span></div>
<p class="h-13 mt-7 desc">
<span> 描述</span> In my dual profession as an educator and health care provider, I have worked with numerous children infected
with the virus that causes AIDS.
</p>
<div class="mt-7">
<el-tag>医疗</el-tag>
<el-tag class="ml-2" type="success">打卡</el-tag>
<el-tag class="ml-2" type="warning">签到</el-tag>
</div>
<p class="mt-7"><span>行业:</span> <span>数字医疗</span> <span class="ml-8">分类:</span> <span>签到</span></p>
<p class="mt-7"><span>更新日期:</span> <span>2021年12月20日</span> <span class="ml-8">作者:</span> <span>传控电子</span></p>
<div class="mt-10">
<el-button type="primary">下载</el-button>
</div>
</div>
</div>
<div class="pagination mt-15 flex flex-row-reverse">
<!-- <el-pagination
v-model:currentPage="currentPage4"
:page-sizes="[10, 20, 30, 40]"
:page-size="20"
layout="total, sizes, prev, pager, next, jumper"
:total="200"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination> -->
<el-config-provider :locale="locale">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage4"
:page-sizes="[10, 20, 30, 40]"
:page-size="20"
layout="total, sizes, prev, pager, next, jumper"
:total="200"
>
</el-pagination>
</el-config-provider>
</div>
</template>
<script lang="ts">
// import { reactive, ref, toRefs } from 'vue';
// vue
import { ElConfigProvider } from 'element-plus';
//
import zhCn from 'element-plus/lib/locale/lang/zh-cn';
export default {
props: { pagReviewLength: Number },
components: { [ElConfigProvider.name]: ElConfigProvider },
setup() {
const locale = zhCn;
// const state = reactive({
// pageSize: 10,
// total: '',
// currentPage1: 1,
// });
return { locale };
},
};
</script>
<style scoped>
.el-select {
margin-right: 2rem;
width: 20%;
}
.desc {
overflow: hidden;
}
</style>

2
src/views/user/sign-in.vue

@ -71,7 +71,7 @@ function onSubmit() {
ElMessage.success('登录成功, 欢迎回来');
setTimeout(() => {
//
router.push({ name: 'plugshop' });
router.push({ name: 'plugin-shop' });
}, 1000);
} catch (error) {
ElMessage.error(error);

10
yarn.lock

@ -2316,10 +2316,10 @@
dependencies:
"prettier-linter-helpers" "^1.0.0"
"eslint-plugin-vue@^7.19.1":
"integrity" "sha1-Q1+yznEoQqlTCyjqy4g2gOjqpPM="
"resolved" "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-7.19.1.tgz"
"version" "7.19.1"
"eslint-plugin-vue@^7.20.0":
"integrity" "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw=="
"resolved" "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-7.20.0.tgz"
"version" "7.20.0"
dependencies:
"eslint-utils" "^2.1.0"
"natural-compare" "^1.4.0"
@ -2356,7 +2356,7 @@
"resolved" "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz"
"version" "2.1.0"
"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^5.16.0 || ^6.8.0 || ^7.2.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0-0", "eslint@^7.32.0", "eslint@>=5.0.0", "eslint@>=7.0.0", "eslint@>=7.28.0":
"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^5.16.0 || ^6.8.0 || ^7.2.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^7.32.0", "eslint@>=5.0.0", "eslint@>=7.0.0", "eslint@>=7.28.0":
"integrity" "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0="
"resolved" "https://registry.npmmirror.com/eslint/download/eslint-7.32.0.tgz?cache=0&sync_timestamp=1634180157931&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint%2Fdownload%2Feslint-7.32.0.tgz"
"version" "7.32.0"

Loading…
Cancel
Save