diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..3e5a13962197105f2078d2a224cc57dfa09b4893 --- /dev/null +++ b/public/index.html @@ -0,0 +1,17 @@ + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + +
+ + + diff --git a/server/__pycache__/theta.cpython-312.pyc b/server/__pycache__/theta.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0857045d9f503263008bd95d52b90550bfb6f453 Binary files /dev/null and b/server/__pycache__/theta.cpython-312.pyc differ diff --git a/server/linear.py b/server/linear.py new file mode 100644 index 0000000000000000000000000000000000000000..35cb2ee10fb4b9194d394e1168ca8c3493acbd49 --- /dev/null +++ b/server/linear.py @@ -0,0 +1,108 @@ +import pymysql.cursors +import numpy as np +import re +from collections import Counter + +connection = pymysql.connect(host='localhost', + user='root', + password='123456', + database='soft', + cursorclass=pymysql.cursors.DictCursor) +cursor = connection.cursor() + +sql = "select * from salary where type=1" + +cursor.execute(sql) +result = cursor.fetchall() + + +def getwangluoanquanScore(): + results = [] + for item in result: + results.append(item["skills"].replace(" ", "").split("\n")) + + temp = [] + for item in results: + temp += item + temps = [] + + for item in temp: + if item: + temps.append(item) + + counInfo = Counter(temps) + print(counInfo) + counInfo = counInfo.most_common() + + counInfoList = [] + + for item in counInfo: + counInfoList.append(list(item)) + + sums = 0 + + for item in counInfoList: + sums += item[1] + for item in counInfoList: + item[1] = item[1] / sums + + counInfoDict = {} + for item in counInfoList: + counInfoDict[item[0]] = item[1] + + return counInfoDict + + +# 以字典的方式来记录技能对应的权重(分值) +score = getwangluoanquanScore() + +X = [] +Y = [] +cityMark = {"太原": 1, "北京": 2} + +eduMark = {"大专": 1, "本科": 2, "硕士": 3, "博士": 4, "不限专业": 0} + +for item in result: + str1 = item["salary"] + if not (re.findall("天", str1)) and re.findall("(千|万)", str1): + a = [] + a.append(1) + # 城市 + a.append(cityMark[item["city"]]) + # 学历 + edu = item["education"].replace(" ", "").replace("\n", "") + a.append(eduMark.get(edu, 0)) + # 工作年限 + workage = item["workage"].replace(" ", "").replace("\n", "") + if re.findall("\d", workage): + workage = workage[:1] + else: + workage = 1 + a.append(workage) + # 技能值 + scores = 0 + for i in item["skills"].replace(" ", "").split("\n"): + if i: + scores += score[i] + print(scores) + a.append(scores) + X.append(a) + + nums = re.findall("\d+\.{0,1}\d*", str1) + flag = re.findall("(千|万)", str1) + num1 = float(nums[0]) * 1000 if flag[0] == "千" else float(nums[0]) * 10000 + num2 = float(nums[1]) * 1000 if flag[1] == "千" else float(nums[1]) * 10000 + avg = (num1 + num2) / 2 + Y.append(avg) + + X = np.array(X).astype(float) + Y = np.array(Y) + print(X) + print(Y) + theta = np.linalg.pinv(X.T.dot(X)).dot(X.T).dot(Y) + print(theta) + f = open("theta.py", "w") + f.write("import numpy as np \ntheta=" + str(list(theta))) + + + diff --git a/server/server.py b/server/server.py new file mode 100644 index 0000000000000000000000000000000000000000..99a6b2ad82f48d56372e2751bf2621ca5164820f --- /dev/null +++ b/server/server.py @@ -0,0 +1,485 @@ +from flask import Flask, render_template, request +from flask_cors import CORS +import pymysql.constants +from collections import Counter +import re + +connection = pymysql.connect(host='localhost', + user='root', + password='123456', + database='soft', + cursorclass=pymysql.cursors.DictCursor) +cursor = connection.cursor() +app = Flask(__name__) +CORS(app, resources={r"/*": {"origins": "*"}}) + + +#网络安全 +@app.route('/getwangluoanquanData') +def getwangluoanquanData(): + sql = "select * from salary where type=1" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + return result + +@app.route("/getwangluoanquanEcharts") +def getwangluoanquanEcharts(): + sql = "select skills from salary where type=1" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + infos = [] + for item in result: + infos += (item["skills"].replace(" ", "").split("\n")) + + infos = (Counter(infos)) + infos = infos.most_common() + print(infos) + X = [] + Y = [] + for item in infos: + if item[0]: + X.append(item[0]) + Y.append(item[1]) + + return [X[:10], Y[:10]] + +@app.route("/getwangluoanquanEduEcharts") +def getwangluoanquanEduEcharts(): + sql = "select education from salary where type=1" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + infos = [] + for item in result: + if item["education"].replace(" ", "").replace("\n", ""): + infos.append(item["education"].replace(" ", "").replace("\n", "")) + infos = (Counter(infos).most_common()) + arr = [] + for item in infos: + obj = {} + obj["value"] = item[1] + obj["name"] = item[0] + arr.append(obj) + return arr[:10] + +@app.route("/getwangluoanquanEduAndSalaryEcharts") +def getwangluoanquanEduAndSalaryEcharts(): + sql = "select education,salary from salary where type=1" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + + total = {} + totalnum = {} + for item in result: + if item["education"]: + edu = item["education"].replace(" ", "").replace("\n", "") + price = item["salary"].replace(" ", "").replace("\n", "") + + if not (re.findall("天", price)) and re.findall("(千|万)", price): + nums = re.findall("\d+\.{0,1}\d*", price) + flag = re.findall("(千|万)", price) + num1 = float(nums[0]) * 1000 if flag[0] == "千" else float(nums[0]) * 10000 + num2 = float(nums[1]) * 1000 if flag[1] == "千" else float(nums[1]) * 10000 + avg = (num1 + num2) / 2 + if total.get(edu): + total[edu] += avg + totalnum[edu] += 1 + else: + total[edu] = avg + totalnum[edu] = 1 + + X = [] + Y = [] + for item in total: + X.append(item) + Y.append(total[item] / totalnum[item]) + + print(X) + print(Y) + return [X[:10], Y[:10]] + +@app.route("/getwangluoanquanScore") +def getwangluoanquanScore(): + sql = "select skills from salary where type=1" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + + infos = [] + for item in result: + infos += (item["skills"].replace(" ", "").split("\n")) + + infos = (Counter(infos)) + infos = infos.most_common() + total = 0 + newinfos = [] + for item in infos: + if item[0]: + total += item[1] + newinfos.append(list(item)) + for item in newinfos: + item[1] = item[1] / total + return newinfos[:10] + + + +#人工智能 +@app.route('/getrengongzhinengData') +def getrengongzhinengData(): + sql = "select * from salary where type=2" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + return result + +@app.route("/getrgznEcharts") +def getrgznEcharts(): + sql = "select skills from salary where type=2" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + infos = [] + for item in result: + infos += (item["skills"].replace(" ", "").split("\n")) + + infos = (Counter(infos)) + infos = infos.most_common() + print(infos) + X = [] + Y = [] + for item in infos: + if item[0]: + X.append(item[0]) + Y.append(item[1]) + + return [X[:10], Y[:10]] + +@app.route("/getrgznEduEcharts") +def getrgznEduEcharts(): + sql = "select education from salary where type=2" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + infos = [] + for item in result: + if item["education"].replace(" ", "").replace("\n", ""): + infos.append(item["education"].replace(" ", "").replace("\n", "")) + infos = (Counter(infos).most_common()) + arr = [] + for item in infos: + obj = {} + obj["value"] = item[1] + obj["name"] = item[0] + arr.append(obj) + return arr[:10] + +@app.route("/getrgznEduAndSalaryEcharts") +def getrgznEduAndSalaryEcharts(): + sql = "select education,salary from salary where type=2" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + + total = {} + totalnum = {} + for item in result: + if item["education"]: + edu = item["education"].replace(" ", "").replace("\n", "") + price = item["salary"].replace(" ", "").replace("\n", "") + + if not (re.findall("天", price)) and re.findall("(千|万)", price): + nums = re.findall("\d+\.{0,1}\d*", price) + flag = re.findall("(千|万)", price) + num1 = float(nums[0]) * 1000 if flag[0] == "千" else float(nums[0]) * 10000 + num2 = float(nums[1]) * 1000 if flag[1] == "千" else float(nums[1]) * 10000 + avg = (num1 + num2) / 2 + if total.get(edu): + total[edu] += avg + totalnum[edu] += 1 + else: + total[edu] = avg + totalnum[edu] = 1 + + X = [] + Y = [] + for item in total: + X.append(item) + Y.append(total[item] / totalnum[item]) + + print(X) + print(Y) + return [X[:10], Y[:10]] + +@app.route("/getrgznScore") +def getrgznScore(): + sql = "select skills from salary where type=2" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + + infos = [] + for item in result: + infos += (item["skills"].replace(" ", "").split("\n")) + + infos = (Counter(infos)) + infos = infos.most_common() + total = 0 + newinfos = [] + for item in infos: + if item[0]: + total += item[1] + newinfos.append(list(item)) + for item in newinfos: + item[1] = item[1] / total + return newinfos[:10] + + +#软件开发 +@app.route('/getruanjiankaifaData') +def getruanjiankaifaData(): + sql = "select * from salary where type=3" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + return result + +@app.route("/getkfEcharts") +def getkfEcharts(): + sql = "select skills from salary where type=3" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + infos = [] + for item in result: + infos += (item["skills"].replace(" ", "").split("\n")) + + infos = (Counter(infos)) + infos = infos.most_common() + print(infos) + X = [] + Y = [] + for item in infos: + if item[0]: + X.append(item[0]) + Y.append(item[1]) + + return [X[:10], Y[:10]] + +@app.route("/getkfEduEcharts") +def getkfEduEcharts(): + sql = "select education from salary where type=3" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + infos = [] + for item in result: + if item["education"].replace(" ", "").replace("\n", ""): + infos.append(item["education"].replace(" ", "").replace("\n", "")) + infos = (Counter(infos).most_common()) + arr = [] + for item in infos: + obj = {} + obj["value"] = item[1] + obj["name"] = item[0] + arr.append(obj) + return arr[:10] + +@app.route("/getkfEduAndSalaryEcharts") +def getkfEduAndSalaryEcharts(): + sql = "select education,salary from salary where type=3" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + + total = {} + totalnum = {} + for item in result: + if item["education"]: + edu = item["education"].replace(" ", "").replace("\n", "") + price = item["salary"].replace(" ", "").replace("\n", "") + + if not (re.findall("天", price)) and re.findall("(千|万)", price): + nums = re.findall("\d+\.{0,1}\d*", price) + flag = re.findall("(千|万)", price) + num1 = float(nums[0]) * 1000 if flag[0] == "千" else float(nums[0]) * 10000 + num2 = float(nums[1]) * 1000 if flag[1] == "千" else float(nums[1]) * 10000 + avg = (num1 + num2) / 2 + if total.get(edu): + total[edu] += avg + totalnum[edu] += 1 + else: + total[edu] = avg + totalnum[edu] = 1 + + X = [] + Y = [] + for item in total: + X.append(item) + Y.append(total[item] / totalnum[item]) + + print(X) + print(Y) + return [X[:10], Y[:10]] + +@app.route("/getkfScore") +def getkfScore(): + sql = "select skills from salary where type=3" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + + infos = [] + for item in result: + infos += (item["skills"].replace(" ", "").split("\n")) + + infos = (Counter(infos)) + infos = infos.most_common() + total = 0 + newinfos = [] + for item in infos: + if item[0]: + total += item[1] + newinfos.append(list(item)) + for item in newinfos: + item[1] = item[1] / total + return newinfos[:10] + + +#测试工程师 +@app.route('/getceshiData') +def getceshiData(): + sql = "select * from salary where type=4" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + return result + +@app.route("/getcsEcharts") +def getcsEcharts(): + sql = "select skills from salary where type=4" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + infos = [] + for item in result: + infos += (item["skills"].replace(" ", "").split("\n")) + + infos = (Counter(infos)) + infos = infos.most_common() + print(infos) + X = [] + Y = [] + for item in infos: + if item[0]: + X.append(item[0]) + Y.append(item[1]) + + return [X[:10], Y[:10]] + +@app.route("/getcsEduEcharts") +def getcsEduEcharts(): + sql = "select education from salary where type=4" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + infos = [] + for item in result: + if item["education"].replace(" ", "").replace("\n", ""): + infos.append(item["education"].replace(" ", "").replace("\n", "")) + infos = (Counter(infos).most_common()) + arr = [] + for item in infos: + obj = {} + obj["value"] = item[1] + obj["name"] = item[0] + arr.append(obj) + return arr[:10] + +@app.route("/getcsEduAndSalaryEcharts") +def getcsEduAndSalaryEcharts(): + sql = "select education,salary from salary where type=4" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + + total = {} + totalnum = {} + for item in result: + if item["education"]: + edu = item["education"].replace(" ", "").replace("\n", "") + price = item["salary"].replace(" ", "").replace("\n", "") + + if not (re.findall("天", price)) and re.findall("(千|万)", price): + nums = re.findall("\d+\.{0,1}\d*", price) + flag = re.findall("(千|万)", price) + num1 = float(nums[0]) * 1000 if flag[0] == "千" else float(nums[0]) * 10000 + num2 = float(nums[1]) * 1000 if flag[1] == "千" else float(nums[1]) * 10000 + avg = (num1 + num2) / 2 + if total.get(edu): + total[edu] += avg + totalnum[edu] += 1 + else: + total[edu] = avg + totalnum[edu] = 1 + + X = [] + Y = [] + for item in total: + X.append(item) + Y.append(total[item] / totalnum[item]) + + print(X) + print(Y) + return [X[:10], Y[:10]] + +@app.route("/getcsScore") +def getcsScore(): + sql = "select skills from salary where type=4" + cursor.execute(sql) + result = cursor.fetchall() + connection.commit() + + infos = [] + for item in result: + infos += (item["skills"].replace(" ", "").split("\n")) + + infos = (Counter(infos)) + infos = infos.most_common() + total = 0 + newinfos = [] + for item in infos: + if item[0]: + total += item[1] + newinfos.append(list(item)) + for item in newinfos: + item[1] = item[1] / total + return newinfos[:10] + + +@app.route("/predict") +def predict(): + X = [] + city = float(request.args.get("city")) + workage = float(request.args.get("workage")) + education = float(request.args.get("education")) + skills = request.args.get("skills") + nums = 0 + for item in skills.split(","): + nums += float(item) + + X.append(1) + X.append(city) + X.append(education) + X.append(workage) + X.append(nums) + from theta import theta + import numpy as np + X = np.array(X) + theta = np.array(theta) + return str(X.dot(theta)) + + +app.run() diff --git a/server/theta.py b/server/theta.py new file mode 100644 index 0000000000000000000000000000000000000000..490fae06dca9dd770f3e093e6bc0d345adb5338b --- /dev/null +++ b/server/theta.py @@ -0,0 +1,2 @@ +import numpy as np +theta=[np.float64(2154.0025103505127), np.float64(2154.0025103505113), np.float64(0.0), np.float64(2154.0025103505113), np.float64(18.894758862723798), np.float64(43.1880202576544), np.float64(75.57903545089519), np.float64(80.97753798310198), np.float64(86.3760405153088), np.float64(89.07529178141215), np.float64(91.77454304751556), np.float64(94.47379431361892), np.float64(99.87229684582573), np.float64(102.57154811192915), np.float64(118.76705570854952)] \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000000000000000000000000000000000000..4fe8174918aeb805fe819e4fcb7c694ec9592499 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,157 @@ + + + + \ No newline at end of file diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 Binary files /dev/null and b/src/assets/logo.png differ diff --git a/src/assets/xuexiao.png b/src/assets/xuexiao.png new file mode 100644 index 0000000000000000000000000000000000000000..582cad469a9bc7144d757e565edb6b1febe63d4d Binary files /dev/null and b/src/assets/xuexiao.png differ diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue new file mode 100644 index 0000000000000000000000000000000000000000..669d8812d6e82796488ae0d8f80b79bb6c7a1144 --- /dev/null +++ b/src/components/HelloWorld.vue @@ -0,0 +1,58 @@ + + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000000000000000000000000000000000000..7e71f116a591124b1783a2ee9a5e6479c97bee7f --- /dev/null +++ b/src/main.js @@ -0,0 +1,11 @@ +import Vue from 'vue' +import App from './App.vue' +import router from './router' +import ElementUI from 'element-ui'; +import 'element-ui/lib/theme-chalk/index.css'; +Vue.config.productionTip = false +Vue.use(ElementUI); +new Vue({ + router, + render: h => h(App) +}).$mount('#app') diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000000000000000000000000000000000000..556970fd7591d7918f2d73175574212d85ceb097 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,108 @@ +import Vue from 'vue' +import VueRouter from 'vue-router' +import test from '../views/test.vue' +import wangluoanquan from "@/views/wangluoanquan.vue"; +import rengongzhineng from "@/views/rengongzhineng.vue"; +import ruanjiankaifa from "@/views/ruanjiankaifa.vue"; +import wangluoanquanCharts from "@/views/wangluoanquanCharts.vue"; +import wlaqform from "@/views/wlaqform.vue"; +import rgznCharts from "@/views/rgznCharts.vue"; +import csCharts from "@/views/csCharts.vue"; +import kfCharts from "@/views/kfCharts.vue"; +import ceshi from "@/views/ceshi.vue"; +import kfform from "@/views/kfform.vue"; +import csform from "@/views/csform.vue"; +import rgznform from "@/views/rgznform.vue"; + +Vue.use(VueRouter) + +const routes = [ + //网络安全 + { + path: '/wangluoanquan', + name: 'wangluoanquan', + component: wangluoanquan + }, + { + path: '/wangluoanquanCharts', + name: 'wangluoanquanCharts', + component: wangluoanquanCharts + }, + { + path: '/wlaqform', + name: 'wlaqform', + component: wlaqform + }, + //人工智能 + { + path: '/rengongzhineng', + name: 'rengongzhineng', + component: rengongzhineng + }, + { + path: '/rgznCharts', + name: 'rgznCharts', + component: rgznCharts + }, + { + path: '/rgznform', + name: 'rgznform', + component: rgznform + }, + + //软件开发 + { + path: '/ruanjiankaifa', + name: 'ruanjiankaifa', + component: ruanjiankaifa + }, + { + path: '/kfCharts', + name: 'kfCharts', + component: kfCharts + }, + { + path: '/kfform', + name: 'kfform', + component: kfform + }, + + //测试工程师 + { + path: '/ceshi', + name: 'ceshi', + component: ceshi + }, + { + path: '/csCharts', + name: 'csCharts', + component: csCharts + }, + { + path: '/csform', + name: 'csform', + component:csform + }, + + + + { + path: '/test', + name: 'test', + component: test + }, + { + path: '/about', + name: 'about', + // route level code-splitting + // this generates a separate chunk (about.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue') + } +] + +const router = new VueRouter({ + routes +}) + +export default router diff --git a/src/views/AboutView.vue b/src/views/AboutView.vue new file mode 100644 index 0000000000000000000000000000000000000000..3fa28070de24f2055171ca2e20543881cb7fdf1c --- /dev/null +++ b/src/views/AboutView.vue @@ -0,0 +1,5 @@ + diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue new file mode 100644 index 0000000000000000000000000000000000000000..e8d96d7a7049d1ddda2073b5bed757935fc35fbc --- /dev/null +++ b/src/views/HomeView.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/views/ceshi.vue b/src/views/ceshi.vue new file mode 100644 index 0000000000000000000000000000000000000000..e8a0a25ed44728aca263a832e8b3a561f799feda --- /dev/null +++ b/src/views/ceshi.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/src/views/csCharts.vue b/src/views/csCharts.vue new file mode 100644 index 0000000000000000000000000000000000000000..f8e13a159a151840262286072312f538775c5e14 --- /dev/null +++ b/src/views/csCharts.vue @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file diff --git a/src/views/csform.vue b/src/views/csform.vue new file mode 100644 index 0000000000000000000000000000000000000000..3f90572e3879a928860b6601e7fe3dff91b74d25 --- /dev/null +++ b/src/views/csform.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/views/kfCharts.vue b/src/views/kfCharts.vue new file mode 100644 index 0000000000000000000000000000000000000000..db7d7eea02276c96ed2dec6597a9998dd91b2134 --- /dev/null +++ b/src/views/kfCharts.vue @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file diff --git a/src/views/kfform.vue b/src/views/kfform.vue new file mode 100644 index 0000000000000000000000000000000000000000..9afa2ba1c1c3591b154f08c0be870ff8227c17b6 --- /dev/null +++ b/src/views/kfform.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/views/rengongzhineng.vue b/src/views/rengongzhineng.vue new file mode 100644 index 0000000000000000000000000000000000000000..f995a596283efb722bd614b713dccd107e2ebbb2 --- /dev/null +++ b/src/views/rengongzhineng.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/src/views/rgznCharts.vue b/src/views/rgznCharts.vue new file mode 100644 index 0000000000000000000000000000000000000000..17730f0baa58307da5ccf9deacd640edef3402d9 --- /dev/null +++ b/src/views/rgznCharts.vue @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file diff --git a/src/views/rgznform.vue b/src/views/rgznform.vue new file mode 100644 index 0000000000000000000000000000000000000000..da0a719ef2caabc69529a8c8435cf455c8873266 --- /dev/null +++ b/src/views/rgznform.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/views/ruanjiankaifa.vue b/src/views/ruanjiankaifa.vue new file mode 100644 index 0000000000000000000000000000000000000000..1bf03a98537876f6653a290cd73a399e7e69824f --- /dev/null +++ b/src/views/ruanjiankaifa.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/src/views/wangluoanquan.vue b/src/views/wangluoanquan.vue new file mode 100644 index 0000000000000000000000000000000000000000..3fda73ea60cb431c1010c92d0f4be5a86bb83853 --- /dev/null +++ b/src/views/wangluoanquan.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/src/views/wangluoanquanCharts.vue b/src/views/wangluoanquanCharts.vue new file mode 100644 index 0000000000000000000000000000000000000000..6613deb0279628f34ce68e54f62a1b20b777839d --- /dev/null +++ b/src/views/wangluoanquanCharts.vue @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file diff --git a/src/views/wlaqform.vue b/src/views/wlaqform.vue new file mode 100644 index 0000000000000000000000000000000000000000..26e556ef45152aef875e0b6da4b025b1c2d0ced0 --- /dev/null +++ b/src/views/wlaqform.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git "a/\346\210\252\345\233\276/\345\262\227\344\275\215\344\277\241\346\201\257.png" "b/\346\210\252\345\233\276/\345\262\227\344\275\215\344\277\241\346\201\257.png" new file mode 100644 index 0000000000000000000000000000000000000000..18f350aed87b388cac2e725f112f4d71fd43f179 Binary files /dev/null and "b/\346\210\252\345\233\276/\345\262\227\344\275\215\344\277\241\346\201\257.png" differ diff --git "a/\346\210\252\345\233\276/\346\212\230\347\272\277\345\233\276.png" "b/\346\210\252\345\233\276/\346\212\230\347\272\277\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..66246e6e72845a35bd42f29a74611133243a4174 Binary files /dev/null and "b/\346\210\252\345\233\276/\346\212\230\347\272\277\345\233\276.png" differ diff --git "a/\346\210\252\345\233\276/\346\237\261\347\212\266\345\233\276.png" "b/\346\210\252\345\233\276/\346\237\261\347\212\266\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..456513153fb190e7aa05427d7fb49c73c4cefb94 Binary files /dev/null and "b/\346\210\252\345\233\276/\346\237\261\347\212\266\345\233\276.png" differ diff --git "a/\346\210\252\345\233\276/\351\242\204\346\265\213.png" "b/\346\210\252\345\233\276/\351\242\204\346\265\213.png" new file mode 100644 index 0000000000000000000000000000000000000000..0204cfe804413febc52795fd1d4a91e69155a750 Binary files /dev/null and "b/\346\210\252\345\233\276/\351\242\204\346\265\213.png" differ diff --git "a/\346\210\252\345\233\276/\351\245\274\347\212\266\345\233\276.png" "b/\346\210\252\345\233\276/\351\245\274\347\212\266\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..b5f95522ccc342c24a09d36644327c85e6ae8f20 Binary files /dev/null and "b/\346\210\252\345\233\276/\351\245\274\347\212\266\345\233\276.png" differ diff --git "a/\346\226\207\346\230\245\350\213\22720211106232 .docx" "b/\346\226\207\346\230\245\350\213\22720211106232 .docx" new file mode 100644 index 0000000000000000000000000000000000000000..c4cb099f94b2d704dc0d5d363a6988017cf3eb87 Binary files /dev/null and "b/\346\226\207\346\230\245\350\213\22720211106232 .docx" differ