[A]add recipe frontend
This commit is contained in:
parent
558065a8f1
commit
0ebbbe8f0e
19
.eslintrc.json
Normal file
19
.eslintrc.json
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es2021": true
|
||||
},
|
||||
"extends": [
|
||||
"plugin:vue/essential",
|
||||
"google"
|
||||
],
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 12,
|
||||
"sourceType": "module"
|
||||
},
|
||||
"plugins": [
|
||||
"vue"
|
||||
],
|
||||
"rules": {
|
||||
}
|
||||
}
|
||||
120
.gitignore
vendored
120
.gitignore
vendored
@ -102,3 +102,123 @@ venv.bak/
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
|
||||
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# Snowpack dependency directory (https://snowpack.dev/)
|
||||
web_modules/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Microbundle cache
|
||||
.rpt2_cache/
|
||||
.rts2_cache_cjs/
|
||||
.rts2_cache_es/
|
||||
.rts2_cache_umd/
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
.env.test
|
||||
.env.production
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
.parcel-cache
|
||||
|
||||
# Next.js build output
|
||||
.next
|
||||
out
|
||||
|
||||
# Nuxt.js build / generate output
|
||||
.nuxt
|
||||
dist
|
||||
|
||||
# Gatsby files
|
||||
.cache/
|
||||
# Comment in the public line in if your project uses Gatsby and not Next.js
|
||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||
# public
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
# Stores VSCode versions used for testing VSCode extensions
|
||||
.vscode-test
|
||||
|
||||
# yarn v2
|
||||
.yarn/cache
|
||||
.yarn/unplugged
|
||||
.yarn/build-state.yml
|
||||
.yarn/install-state.gz
|
||||
.pnp.*
|
||||
|
||||
2
.vscode/settings.json
vendored
Normal file
2
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
{
|
||||
}
|
||||
@ -4,5 +4,39 @@ REST_FRAMEWORK = {
|
||||
'rest_framework.authentication.BasicAuthentication',
|
||||
'rest_framework.authentication.SessionAuthentication',
|
||||
),
|
||||
'PAGE_SIZE': 10
|
||||
}
|
||||
|
||||
|
||||
ALLOWED_HOSTS = ['*']
|
||||
|
||||
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
|
||||
# CORS_ALLOW_ALL_ORIGINS = True # If this is used then `CORS_ALLOWED_ORIGINS` will not have any effect
|
||||
CORS_ALLOWED_ORIGINS = [
|
||||
'http://localhost:8080',
|
||||
'http://127.0.0.1:8080',
|
||||
'http://192.168.1.101:8080'
|
||||
]
|
||||
|
||||
CORS_ALLOW_METHODS = [
|
||||
"DELETE",
|
||||
"GET",
|
||||
"OPTIONS",
|
||||
"PATCH",
|
||||
"POST",
|
||||
"PUT",
|
||||
]
|
||||
|
||||
CORS_ALLOW_HEADERS = [
|
||||
"accept",
|
||||
"accept-encoding",
|
||||
"authorization",
|
||||
"content-type",
|
||||
"dnt",
|
||||
"origin",
|
||||
"user-agent",
|
||||
"x-csrftoken",
|
||||
"x-requested-with",
|
||||
]
|
||||
|
||||
CORS_ALLOW_HEADERS = ('*')
|
||||
|
||||
|
||||
@ -40,6 +40,7 @@ INSTALLED_APPS = [
|
||||
|
||||
|
||||
# third party
|
||||
'corsheaders',
|
||||
'rest_framework',
|
||||
'rest_framework.authtoken',
|
||||
|
||||
@ -49,9 +50,10 @@ INSTALLED_APPS = [
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
'corsheaders.middleware.CorsMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
@ -139,3 +141,12 @@ REST_FRAMEWORK = {
|
||||
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
|
||||
'PAGE_SIZE': 10
|
||||
}
|
||||
|
||||
# CORS
|
||||
# CORS_ALLOWED_ORIGINS = (
|
||||
# 'http://127.0.0.1:8080',
|
||||
# 'http://localhost:8080',
|
||||
# )
|
||||
CORS_ALLOWED_ORIGINS = []
|
||||
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
|
||||
# CORS_ALLOW_ALL_ORIGINS = False # If this is used then `CORS_ALLOWED_ORIGINS` will not have any effect
|
||||
|
||||
23
frontend/.gitignore
vendored
Normal file
23
frontend/.gitignore
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
.DS_Store
|
||||
node_modules
|
||||
/dist
|
||||
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Log files
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
24
frontend/README.md
Normal file
24
frontend/README.md
Normal file
@ -0,0 +1,24 @@
|
||||
# frontend
|
||||
|
||||
## Project setup
|
||||
```
|
||||
yarn install
|
||||
```
|
||||
|
||||
### Compiles and hot-reloads for development
|
||||
```
|
||||
yarn serve
|
||||
```
|
||||
|
||||
### Compiles and minifies for production
|
||||
```
|
||||
yarn build
|
||||
```
|
||||
|
||||
### Lints and fixes files
|
||||
```
|
||||
yarn lint
|
||||
```
|
||||
|
||||
### Customize configuration
|
||||
See [Configuration Reference](https://cli.vuejs.org/config/).
|
||||
5
frontend/babel.config.js
Normal file
5
frontend/babel.config.js
Normal file
@ -0,0 +1,5 @@
|
||||
module.exports = {
|
||||
presets: [
|
||||
'@vue/cli-plugin-babel/preset'
|
||||
]
|
||||
}
|
||||
25786
frontend/package-lock.json
generated
Normal file
25786
frontend/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
51
frontend/package.json
Normal file
51
frontend/package.json
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
"name": "frontend",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "## Project setup ``` yarn install ```",
|
||||
"author": "",
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"lint": "vue-cli-service lint"
|
||||
},
|
||||
"main": "babel.config.js",
|
||||
"dependencies": {
|
||||
"axios": "^0.21.2",
|
||||
"core-js": "^3.6.5",
|
||||
"element-plus": "^1.0.2-beta.28",
|
||||
"vue": "^3.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "~4.5.0",
|
||||
"@vue/cli-plugin-eslint": "~4.5.0",
|
||||
"@vue/cli-service": "~4.5.0",
|
||||
"@vue/compiler-sfc": "^3.0.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-config-google": "^0.14.0",
|
||||
"eslint-plugin-vue": "^7.17.0",
|
||||
"vue-cli-plugin-element-plus": "~0.0.13"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"root": true,
|
||||
"env": {
|
||||
"node": true
|
||||
},
|
||||
"extends": [
|
||||
"plugin:vue/vue3-essential",
|
||||
"eslint:recommended"
|
||||
],
|
||||
"parserOptions": {
|
||||
"parser": "babel-eslint"
|
||||
},
|
||||
"rules": {}
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not dead"
|
||||
],
|
||||
"keywords": [],
|
||||
"license": "ISC"
|
||||
}
|
||||
BIN
frontend/public/favicon.ico
Normal file
BIN
frontend/public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
17
frontend/public/index.html
Normal file
17
frontend/public/index.html
Normal file
@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||
</noscript>
|
||||
<div id="app"></div>
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
</html>
|
||||
119
frontend/src/App.vue
Normal file
119
frontend/src/App.vue
Normal file
@ -0,0 +1,119 @@
|
||||
<template>
|
||||
<el-row justify="center">
|
||||
<el-col :span="18">
|
||||
<el-table :data="recipes" max-height="500" class="recipe-table">
|
||||
<el-table-column prop="name" label="名字"> </el-table-column>
|
||||
<el-table-column
|
||||
prop="recipe_type"
|
||||
label="类型"
|
||||
:formatter="formatRecipeType"
|
||||
:filters="[
|
||||
{ text: '青菜', value: 'vegetable' },
|
||||
{ text: '肉', value: 'meat' },
|
||||
{ text: '汤', value: 'soup' },
|
||||
]"
|
||||
:filter-method="filterRecipeType"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="difficulty"
|
||||
label="难度"
|
||||
:formatter="formatDifficulty"
|
||||
sortable
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="rate"
|
||||
label="评分"
|
||||
:formatter="formatRate"
|
||||
sortable
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center">
|
||||
<el-col :span="18"> <input_recipe></input_recipe> </el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import axios from 'axios';
|
||||
import input_recipe from './components/input_recipe.vue';
|
||||
// const api_root = 'localhost:8000'
|
||||
const type_map = {
|
||||
vegetable: '青菜',
|
||||
meat: '肉',
|
||||
soup: '汤',
|
||||
};
|
||||
const rate_map = {
|
||||
1: '🍚',
|
||||
2: '🍚 🍚',
|
||||
3: '🍚 🍚 🍚',
|
||||
4: '🍚 🍚 🍚 🍚',
|
||||
5: '🍚 🍚 🍚 🍚 🍚',
|
||||
};
|
||||
const difficulty_map = {
|
||||
1: '⭐',
|
||||
2: '⭐ ⭐',
|
||||
3: '⭐ ⭐ ⭐',
|
||||
4: '⭐ ⭐ ⭐ ⭐',
|
||||
5: '⭐ ⭐ ⭐ ⭐ ⭐',
|
||||
};
|
||||
function formatRecipeType(row) {
|
||||
return type_map[row.recipe_type];
|
||||
}
|
||||
function formatRate(row) {
|
||||
return rate_map[row.rate];
|
||||
}
|
||||
function formatDifficulty(row) {
|
||||
return difficulty_map[row.difficulty];
|
||||
}
|
||||
export default {
|
||||
components: { input_recipe },
|
||||
name: 'App',
|
||||
provide() {
|
||||
return {
|
||||
reload: this.reload,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
reload() {
|
||||
this.isRouterAlive = false;
|
||||
this.$nextTick(function() {
|
||||
this.isRouterAlive = true;
|
||||
});
|
||||
},
|
||||
filterRecipeType(value, row) {
|
||||
return row.recipe_type === value;
|
||||
},
|
||||
},
|
||||
data: function() {
|
||||
return {
|
||||
recipes: '',
|
||||
formatRecipeType,
|
||||
formatRate,
|
||||
formatDifficulty,
|
||||
isRouterAlive: true,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
axios
|
||||
.get('//localhost:8000/recipe/recipe/')
|
||||
.then(console.log('hihhihih'))
|
||||
.then((response) => (this.recipes = response.data));
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.el-row {
|
||||
margin-bottom: 20px;
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
.el-col {
|
||||
border-radius: 4px;
|
||||
}
|
||||
</style>
|
||||
BIN
frontend/src/assets/logo.png
Normal file
BIN
frontend/src/assets/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.7 KiB |
58
frontend/src/components/HelloWorld.vue
Normal file
58
frontend/src/components/HelloWorld.vue
Normal file
@ -0,0 +1,58 @@
|
||||
<template>
|
||||
<div class="hello">
|
||||
<h1>{{ msg }}</h1>
|
||||
<p>
|
||||
For a guide and recipes on how to configure / customize this project,<br>
|
||||
check out the
|
||||
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
|
||||
</p>
|
||||
<h3>Installed CLI Plugins</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
|
||||
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
|
||||
</ul>
|
||||
<h3>Essential Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
|
||||
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
|
||||
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
|
||||
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
|
||||
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
|
||||
</ul>
|
||||
<h3>Ecosystem</h3>
|
||||
<ul>
|
||||
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
|
||||
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
|
||||
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
|
||||
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
|
||||
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'HelloWorld',
|
||||
props: {
|
||||
msg: String
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
||||
<style scoped>
|
||||
h3 {
|
||||
margin: 40px 0 0;
|
||||
}
|
||||
ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
li {
|
||||
display: inline-block;
|
||||
margin: 0 10px;
|
||||
}
|
||||
a {
|
||||
color: #42b983;
|
||||
}
|
||||
</style>
|
||||
102
frontend/src/components/input_recipe.vue
Normal file
102
frontend/src/components/input_recipe.vue
Normal file
@ -0,0 +1,102 @@
|
||||
<template>
|
||||
<el-row justify="left">
|
||||
<el-col>
|
||||
<el-form :rules="rules" ref="form" :model="form" label-position="left">
|
||||
<el-form-item label="名字" prop="name">
|
||||
<el-input v-model="form.name" placeholder="鱼香茄子......"></el-input>
|
||||
</el-form-item>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="类型">
|
||||
<el-select
|
||||
v-model="form.recipe_type"
|
||||
placeholder="选择类型"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option label="肉" value="meat"></el-option>
|
||||
<el-option label="菜" value="vegetable"></el-option>
|
||||
<el-option label="汤" value="soup"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="评分">
|
||||
<el-select
|
||||
v-model="form.rate"
|
||||
placeholder="选择评分"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option label="再也不吃了" value="1"></el-option>
|
||||
<el-option label="难吃,再练练" value="2"></el-option>
|
||||
<el-option label="还行" value="3"></el-option>
|
||||
<el-option label="好吃" value="4"></el-option>
|
||||
<el-option label="上天了" value="5"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="难度">
|
||||
<el-select
|
||||
v-model="form.difficulty"
|
||||
placeholder="选择难度"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option label="无脑做" value="1"></el-option>
|
||||
<el-option label="还行" value="2"></el-option>
|
||||
<el-option label="有点麻烦" value="3"></el-option>
|
||||
<el-option label="要花心机" value="4"></el-option>
|
||||
<el-option label="做不来做不来" value="5"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="备注">
|
||||
<el-input type="textarea" v-model="form.note"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">提交</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import axios from 'axios';
|
||||
export default {
|
||||
inject: ['reload'],
|
||||
data: function() {
|
||||
return {
|
||||
form: {
|
||||
name: '',
|
||||
recipe_type: 'meat',
|
||||
difficulty: '1',
|
||||
rate: '1',
|
||||
note: null,
|
||||
},
|
||||
rules: {
|
||||
name: [{ required: true, trigger: 'blur', message: '输入菜名' }],
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
onSubmit() {
|
||||
let data = {
|
||||
name: this.form.name,
|
||||
recipe_type: this.form.recipe_type,
|
||||
difficulty: this.form.difficulty,
|
||||
rate: this.form.rate,
|
||||
note: this.form.note,
|
||||
};
|
||||
axios
|
||||
.post('//localhost:8000/recipe/recipe/', data)
|
||||
.then(function() {
|
||||
location.reload();
|
||||
})
|
||||
.catch(function(error) {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
9
frontend/src/main.js
Normal file
9
frontend/src/main.js
Normal file
@ -0,0 +1,9 @@
|
||||
import { createApp } from 'vue'
|
||||
import App from './App.vue'
|
||||
import installElementPlus from './plugins/element'
|
||||
import ElementPlus from 'element-plus'
|
||||
import 'element-plus/lib/theme-chalk/index.css'
|
||||
|
||||
const app = createApp(App)
|
||||
installElementPlus(app)
|
||||
app.use(ElementPlus).mount('#app')
|
||||
7
frontend/src/plugins/element.js
Normal file
7
frontend/src/plugins/element.js
Normal file
@ -0,0 +1,7 @@
|
||||
import ElementPlus from 'element-plus'
|
||||
import 'element-plus/lib/theme-chalk/index.css'
|
||||
import locale from 'element-plus/lib/locale/lang/zh-cn'
|
||||
|
||||
export default (app) => {
|
||||
app.use(ElementPlus, { locale })
|
||||
}
|
||||
5
frontend/src/utils/constants.js
Normal file
5
frontend/src/utils/constants.js
Normal file
@ -0,0 +1,5 @@
|
||||
module.exports = {
|
||||
RECIPE_TYPE_VEGETABLE: 'vegetable',
|
||||
RECIPE_TYPE_META: 'meat',
|
||||
RECIPE_TYPE_SOUP: 'soup',
|
||||
}
|
||||
8799
frontend/yarn.lock
Normal file
8799
frontend/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
381
package-lock.json
generated
Normal file
381
package-lock.json
generated
Normal file
@ -0,0 +1,381 @@
|
||||
{
|
||||
"name": "dsite",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "dsite",
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"element-plus": "^1.1.0-beta.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.14.9",
|
||||
"resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.9.tgz?cache=0&sync_timestamp=1627804430461&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.9.tgz",
|
||||
"integrity": "sha1-ZlTRcbICT22O4VG/JQlpmRkTHUg=",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.15.5",
|
||||
"resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.15.5.tgz?cache=0&sync_timestamp=1630746008183&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.15.5.tgz",
|
||||
"integrity": "sha1-0zpYymn6zAWyat/kq+v+1WwcLaw=",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.15.4",
|
||||
"resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.15.4.tgz?cache=0&sync_timestamp=1630618915456&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.15.4.tgz",
|
||||
"integrity": "sha1-dO64bb1nSNJ0E5ZVe5hg5X/OCg0=",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/helper-validator-identifier": "^7.14.9",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@element-plus/icons": {
|
||||
"version": "0.0.11",
|
||||
"resolved": "https://registry.nlark.com/@element-plus/icons/download/@element-plus/icons-0.0.11.tgz",
|
||||
"integrity": "sha1-mxh8ACd0VIuRGFDRf6X8L5pRX1c="
|
||||
},
|
||||
"node_modules/@popperjs/core": {
|
||||
"version": "2.10.1",
|
||||
"resolved": "https://registry.nlark.com/@popperjs/core/download/@popperjs/core-2.10.1.tgz?cache=0&sync_timestamp=1630646750615&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.10.1.tgz",
|
||||
"integrity": "sha1-co7NlasgequKmk5CHwQi2zKSMr4="
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/compiler-core/download/@vue/compiler-core-3.2.8.tgz",
|
||||
"integrity": "sha1-E7I4a9sDRVyfbGry80aFYaWuWx0=",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.15.0",
|
||||
"@babel/types": "^7.15.0",
|
||||
"@vue/shared": "3.2.8",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.8.tgz",
|
||||
"integrity": "sha1-abyeCJKKEilcMSmQZ/GNhzAZgak=",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.2.8",
|
||||
"@vue/shared": "3.2.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/reactivity/download/@vue/reactivity-3.2.8.tgz",
|
||||
"integrity": "sha1-snIAzPqgbzEqxGexKjgWE3fFV+0=",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.2.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/runtime-core/download/@vue/runtime-core-3.2.8.tgz",
|
||||
"integrity": "sha1-iiNCwLqg/uGS+BmjvcGVR9dDC4g=",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.2.8",
|
||||
"@vue/shared": "3.2.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-dom": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/runtime-dom/download/@vue/runtime-dom-3.2.8.tgz",
|
||||
"integrity": "sha1-xmMbUHBJ05hEsENOgd8ap578xss=",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/runtime-core": "3.2.8",
|
||||
"@vue/shared": "3.2.8",
|
||||
"csstype": "^2.6.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.8.tgz",
|
||||
"integrity": "sha1-L5GOMwrrP1arEDHKYKWzBnJRJFc=",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/async-validator": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.nlark.com/async-validator/download/async-validator-3.5.2.tgz?cache=0&sync_timestamp=1630393256517&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fasync-validator%2Fdownload%2Fasync-validator-3.5.2.tgz",
|
||||
"integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA="
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "2.6.17",
|
||||
"resolved": "https://registry.nlark.com/csstype/download/csstype-2.6.17.tgz",
|
||||
"integrity": "sha1-TPMOuH4dGgBdi2UQ+VKSQT9qHA4=",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/dayjs": {
|
||||
"version": "1.10.6",
|
||||
"resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.6.tgz?cache=0&sync_timestamp=1625557417200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdayjs%2Fdownload%2Fdayjs-1.10.6.tgz",
|
||||
"integrity": "sha1-KIsqqC8thBimydTfWJjAc3rQKmM="
|
||||
},
|
||||
"node_modules/element-plus": {
|
||||
"version": "1.1.0-beta.8",
|
||||
"resolved": "https://registry.nlark.com/element-plus/download/element-plus-1.1.0-beta.8.tgz?cache=0&sync_timestamp=1630404987049&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felement-plus%2Fdownload%2Felement-plus-1.1.0-beta.8.tgz",
|
||||
"integrity": "sha1-5AorR2fMvuH/mqbU7ShIY60kbhw=",
|
||||
"dependencies": {
|
||||
"@element-plus/icons": "^0.0.11",
|
||||
"@popperjs/core": "^2.4.4",
|
||||
"async-validator": "^3.4.0",
|
||||
"dayjs": "1.x",
|
||||
"lodash": "^4.17.20",
|
||||
"mitt": "^2.1.0",
|
||||
"normalize-wheel": "^1.0.1",
|
||||
"resize-observer-polyfill": "^1.5.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "^3.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz?cache=0&sync_timestamp=1611956983677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-2.0.2.tgz",
|
||||
"integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1624543041613&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flodash%2Fdownload%2Flodash-4.17.21.tgz",
|
||||
"integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw="
|
||||
},
|
||||
"node_modules/mitt": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.nlark.com/mitt/download/mitt-2.1.0.tgz?cache=0&sync_timestamp=1624483449786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmitt%2Fdownload%2Fmitt-2.1.0.tgz",
|
||||
"integrity": "sha1-90BXfCMXbGIFsSGylzUU6t4bIjA="
|
||||
},
|
||||
"node_modules/normalize-wheel": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
|
||||
"integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
|
||||
},
|
||||
"node_modules/resize-observer-polyfill": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
|
||||
"integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
|
||||
},
|
||||
"node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.nlark.com/source-map/download/source-map-0.6.1.tgz",
|
||||
"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1628418855671&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/vue/download/vue-3.2.8.tgz?cache=0&sync_timestamp=1630608473072&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue%2Fdownload%2Fvue-3.2.8.tgz",
|
||||
"integrity": "sha1-kSTkwx68nFkrK58pPfXJqIp46UQ=",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.2.8",
|
||||
"@vue/runtime-dom": "3.2.8",
|
||||
"@vue/shared": "3.2.8"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.14.9",
|
||||
"resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.9.tgz?cache=0&sync_timestamp=1627804430461&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.9.tgz",
|
||||
"integrity": "sha1-ZlTRcbICT22O4VG/JQlpmRkTHUg=",
|
||||
"peer": true
|
||||
},
|
||||
"@babel/parser": {
|
||||
"version": "7.15.5",
|
||||
"resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.15.5.tgz?cache=0&sync_timestamp=1630746008183&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.15.5.tgz",
|
||||
"integrity": "sha1-0zpYymn6zAWyat/kq+v+1WwcLaw=",
|
||||
"peer": true
|
||||
},
|
||||
"@babel/types": {
|
||||
"version": "7.15.4",
|
||||
"resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.15.4.tgz?cache=0&sync_timestamp=1630618915456&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.15.4.tgz",
|
||||
"integrity": "sha1-dO64bb1nSNJ0E5ZVe5hg5X/OCg0=",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@babel/helper-validator-identifier": "^7.14.9",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@element-plus/icons": {
|
||||
"version": "0.0.11",
|
||||
"resolved": "https://registry.nlark.com/@element-plus/icons/download/@element-plus/icons-0.0.11.tgz",
|
||||
"integrity": "sha1-mxh8ACd0VIuRGFDRf6X8L5pRX1c="
|
||||
},
|
||||
"@popperjs/core": {
|
||||
"version": "2.10.1",
|
||||
"resolved": "https://registry.nlark.com/@popperjs/core/download/@popperjs/core-2.10.1.tgz?cache=0&sync_timestamp=1630646750615&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.10.1.tgz",
|
||||
"integrity": "sha1-co7NlasgequKmk5CHwQi2zKSMr4="
|
||||
},
|
||||
"@vue/compiler-core": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/compiler-core/download/@vue/compiler-core-3.2.8.tgz",
|
||||
"integrity": "sha1-E7I4a9sDRVyfbGry80aFYaWuWx0=",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@babel/parser": "^7.15.0",
|
||||
"@babel/types": "^7.15.0",
|
||||
"@vue/shared": "3.2.8",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"@vue/compiler-dom": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.8.tgz",
|
||||
"integrity": "sha1-abyeCJKKEilcMSmQZ/GNhzAZgak=",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/compiler-core": "3.2.8",
|
||||
"@vue/shared": "3.2.8"
|
||||
}
|
||||
},
|
||||
"@vue/reactivity": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/reactivity/download/@vue/reactivity-3.2.8.tgz",
|
||||
"integrity": "sha1-snIAzPqgbzEqxGexKjgWE3fFV+0=",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/shared": "3.2.8"
|
||||
}
|
||||
},
|
||||
"@vue/runtime-core": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/runtime-core/download/@vue/runtime-core-3.2.8.tgz",
|
||||
"integrity": "sha1-iiNCwLqg/uGS+BmjvcGVR9dDC4g=",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/reactivity": "3.2.8",
|
||||
"@vue/shared": "3.2.8"
|
||||
}
|
||||
},
|
||||
"@vue/runtime-dom": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/runtime-dom/download/@vue/runtime-dom-3.2.8.tgz",
|
||||
"integrity": "sha1-xmMbUHBJ05hEsENOgd8ap578xss=",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/runtime-core": "3.2.8",
|
||||
"@vue/shared": "3.2.8",
|
||||
"csstype": "^2.6.8"
|
||||
}
|
||||
},
|
||||
"@vue/shared": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/@vue/shared/download/@vue/shared-3.2.8.tgz",
|
||||
"integrity": "sha1-L5GOMwrrP1arEDHKYKWzBnJRJFc=",
|
||||
"peer": true
|
||||
},
|
||||
"async-validator": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.nlark.com/async-validator/download/async-validator-3.5.2.tgz?cache=0&sync_timestamp=1630393256517&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fasync-validator%2Fdownload%2Fasync-validator-3.5.2.tgz",
|
||||
"integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA="
|
||||
},
|
||||
"csstype": {
|
||||
"version": "2.6.17",
|
||||
"resolved": "https://registry.nlark.com/csstype/download/csstype-2.6.17.tgz",
|
||||
"integrity": "sha1-TPMOuH4dGgBdi2UQ+VKSQT9qHA4=",
|
||||
"peer": true
|
||||
},
|
||||
"dayjs": {
|
||||
"version": "1.10.6",
|
||||
"resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.6.tgz?cache=0&sync_timestamp=1625557417200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdayjs%2Fdownload%2Fdayjs-1.10.6.tgz",
|
||||
"integrity": "sha1-KIsqqC8thBimydTfWJjAc3rQKmM="
|
||||
},
|
||||
"element-plus": {
|
||||
"version": "1.1.0-beta.8",
|
||||
"resolved": "https://registry.nlark.com/element-plus/download/element-plus-1.1.0-beta.8.tgz?cache=0&sync_timestamp=1630404987049&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felement-plus%2Fdownload%2Felement-plus-1.1.0-beta.8.tgz",
|
||||
"integrity": "sha1-5AorR2fMvuH/mqbU7ShIY60kbhw=",
|
||||
"requires": {
|
||||
"@element-plus/icons": "^0.0.11",
|
||||
"@popperjs/core": "^2.4.4",
|
||||
"async-validator": "^3.4.0",
|
||||
"dayjs": "1.x",
|
||||
"lodash": "^4.17.20",
|
||||
"mitt": "^2.1.0",
|
||||
"normalize-wheel": "^1.0.1",
|
||||
"resize-observer-polyfill": "^1.5.1"
|
||||
}
|
||||
},
|
||||
"estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz?cache=0&sync_timestamp=1611956983677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-2.0.2.tgz",
|
||||
"integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=",
|
||||
"peer": true
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1624543041613&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flodash%2Fdownload%2Flodash-4.17.21.tgz",
|
||||
"integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw="
|
||||
},
|
||||
"mitt": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.nlark.com/mitt/download/mitt-2.1.0.tgz?cache=0&sync_timestamp=1624483449786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmitt%2Fdownload%2Fmitt-2.1.0.tgz",
|
||||
"integrity": "sha1-90BXfCMXbGIFsSGylzUU6t4bIjA="
|
||||
},
|
||||
"normalize-wheel": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
|
||||
"integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
|
||||
},
|
||||
"resize-observer-polyfill": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
|
||||
"integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.nlark.com/source-map/download/source-map-0.6.1.tgz",
|
||||
"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
|
||||
"peer": true
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1628418855671&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"peer": true
|
||||
},
|
||||
"vue": {
|
||||
"version": "3.2.8",
|
||||
"resolved": "https://registry.nlark.com/vue/download/vue-3.2.8.tgz?cache=0&sync_timestamp=1630608473072&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue%2Fdownload%2Fvue-3.2.8.tgz",
|
||||
"integrity": "sha1-kSTkwx68nFkrK58pPfXJqIp46UQ=",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@vue/compiler-dom": "3.2.8",
|
||||
"@vue/runtime-dom": "3.2.8",
|
||||
"@vue/shared": "3.2.8"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
22
package.json
Normal file
22
package.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "dsite",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/looching/dsite.git"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"bugs": {
|
||||
"url": "https://github.com/looching/dsite/issues"
|
||||
},
|
||||
"homepage": "https://github.com/looching/dsite#readme",
|
||||
"dependencies": {
|
||||
"element-plus": "^1.1.0-beta.8"
|
||||
}
|
||||
}
|
||||
@ -14,13 +14,12 @@ from rest_framework.views import APIView
|
||||
import recipe.models
|
||||
import recipe.serializers
|
||||
|
||||
class RecipeAPI(rest_framework.generics.RetrieveUpdateAPIView,
|
||||
rest_framework.generics.ListAPIView):
|
||||
class RecipeAPI(rest_framework.generics.RetrieveUpdateAPIView):
|
||||
|
||||
authentication_classes = (authentication.TokenAuthentication,
|
||||
authentication.SessionAuthentication,
|
||||
authentication.BasicAuthentication)
|
||||
permission_classes = (permissions.IsAuthenticated,)
|
||||
# authentication_classes = (authentication.TokenAuthentication,
|
||||
# authentication.SessionAuthentication,
|
||||
# authentication.BasicAuthentication)
|
||||
# permission_classes = (permissions.IsAuthenticated,)
|
||||
queryset = recipe.models.Recipe.objects.all()
|
||||
serializer_class = recipe.serializers.RecipeSerializer
|
||||
|
||||
@ -28,10 +27,10 @@ class RecipeAPI(rest_framework.generics.RetrieveUpdateAPIView,
|
||||
class RecipeListAPI(rest_framework.generics.ListAPIView,
|
||||
rest_framework.generics.CreateAPIView):
|
||||
|
||||
authentication_classes = (authentication.TokenAuthentication,
|
||||
authentication.SessionAuthentication,
|
||||
authentication.BasicAuthentication)
|
||||
permission_classes = (permissions.IsAuthenticated,)
|
||||
# authentication_classes = (authentication.TokenAuthentication,
|
||||
# authentication.SessionAuthentication,
|
||||
# authentication.BasicAuthentication)
|
||||
# permission_classes = (permissions.IsAuthenticated,)
|
||||
queryset = recipe.models.Recipe.objects.all()
|
||||
serializer_class = recipe.serializers.RecipeSerializer
|
||||
|
||||
|
||||
57
yarn.lock
Normal file
57
yarn.lock
Normal file
@ -0,0 +1,57 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@element-plus/icons@^0.0.11":
|
||||
version "0.0.11"
|
||||
resolved "https://registry.nlark.com/@element-plus/icons/download/@element-plus/icons-0.0.11.tgz#9b187c002774548b911850d17fa5fc2f9a515f57"
|
||||
integrity sha1-mxh8ACd0VIuRGFDRf6X8L5pRX1c=
|
||||
|
||||
"@popperjs/core@^2.4.4":
|
||||
version "2.10.1"
|
||||
resolved "https://registry.nlark.com/@popperjs/core/download/@popperjs/core-2.10.1.tgz#728ecd95ab207aab8a9a4e421f0422db329232be"
|
||||
integrity sha1-co7NlasgequKmk5CHwQi2zKSMr4=
|
||||
|
||||
async-validator@^3.4.0:
|
||||
version "3.5.2"
|
||||
resolved "https://registry.nlark.com/async-validator/download/async-validator-3.5.2.tgz?cache=0&sync_timestamp=1630393256517&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fasync-validator%2Fdownload%2Fasync-validator-3.5.2.tgz#68e866a96824e8b2694ff7a831c1a25c44d5e500"
|
||||
integrity sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA=
|
||||
|
||||
dayjs@1.x:
|
||||
version "1.10.6"
|
||||
resolved "https://registry.nlark.com/dayjs/download/dayjs-1.10.6.tgz?cache=0&sync_timestamp=1625557417200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdayjs%2Fdownload%2Fdayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63"
|
||||
integrity sha1-KIsqqC8thBimydTfWJjAc3rQKmM=
|
||||
|
||||
element-plus@^1.1.0-beta.8:
|
||||
version "1.1.0-beta.8"
|
||||
resolved "https://registry.nlark.com/element-plus/download/element-plus-1.1.0-beta.8.tgz?cache=0&sync_timestamp=1630404987049&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felement-plus%2Fdownload%2Felement-plus-1.1.0-beta.8.tgz#e40a2b4767ccbee1ff9aa6d4ed284863ad246e1c"
|
||||
integrity sha1-5AorR2fMvuH/mqbU7ShIY60kbhw=
|
||||
dependencies:
|
||||
"@element-plus/icons" "^0.0.11"
|
||||
"@popperjs/core" "^2.4.4"
|
||||
async-validator "^3.4.0"
|
||||
dayjs "1.x"
|
||||
lodash "^4.17.20"
|
||||
mitt "^2.1.0"
|
||||
normalize-wheel "^1.0.1"
|
||||
resize-observer-polyfill "^1.5.1"
|
||||
|
||||
lodash@^4.17.20:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=
|
||||
|
||||
mitt@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.nlark.com/mitt/download/mitt-2.1.0.tgz?cache=0&sync_timestamp=1624483449786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmitt%2Fdownload%2Fmitt-2.1.0.tgz#f740577c23176c6205b121b2973514eade1b2230"
|
||||
integrity sha1-90BXfCMXbGIFsSGylzUU6t4bIjA=
|
||||
|
||||
normalize-wheel@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45"
|
||||
integrity sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=
|
||||
|
||||
resize-observer-polyfill@^1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
|
||||
integrity sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=
|
||||
Loading…
x
Reference in New Issue
Block a user