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/123.vue b/src/views/123.vue new file mode 100644 index 0000000000000000000000000000000000000000..6c17b5db67d65fcb762732d003faa879ff6a7ed6 --- /dev/null +++ b/src/views/123.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file 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/test.vue b/src/views/test.vue new file mode 100644 index 0000000000000000000000000000000000000000..33afa5440a6c8f12f9d3c74be14f60e277711625 --- /dev/null +++ b/src/views/test.vue @@ -0,0 +1,47 @@ + + + \ 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/\345\274\240\344\270\275\351\234\236 20211106238.docx" "b/\345\274\240\344\270\275\351\234\236 20211106238.docx" new file mode 100644 index 0000000000000000000000000000000000000000..e486eacc580197a458097d25050dd828b9d4e91b Binary files /dev/null and "b/\345\274\240\344\270\275\351\234\236 20211106238.docx" differ diff --git "a/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115759.png" "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115759.png" new file mode 100644 index 0000000000000000000000000000000000000000..675bf3c00b9920faf7e2d257081390aafc1d01a9 Binary files /dev/null and "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115759.png" differ diff --git "a/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115828.png" "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115828.png" new file mode 100644 index 0000000000000000000000000000000000000000..1c8c8ff08b7c2feea5f4da23313e3700bc28c2c9 Binary files /dev/null and "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115828.png" differ diff --git "a/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115923.png" "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115923.png" new file mode 100644 index 0000000000000000000000000000000000000000..ca90c0880fb62d5edcc2f8d25345572a036d6e98 Binary files /dev/null and "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115923.png" differ diff --git "a/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115935.png" "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115935.png" new file mode 100644 index 0000000000000000000000000000000000000000..0829cbe7fc62d3dbf04c5ea363f6b17e9d7609b3 Binary files /dev/null and "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115935.png" differ diff --git "a/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115944.png" "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115944.png" new file mode 100644 index 0000000000000000000000000000000000000000..326d8789c92e2031132dac457f5c7a7e12b8ae12 Binary files /dev/null and "b/\346\265\213\350\257\225\345\267\245\347\250\213\345\270\210/\345\261\217\345\271\225\346\210\252\345\233\276 2024-07-11 115944.png" differ