提交 1d993e9a 编写于 作者: xiaoping.di's avatar xiaoping.di

刷新页面

上级 ff59bca6
import request from 'mn-template/plugins/http';
// 校验token
export const checkToken = async () => {
return request({
url: 'campaign/admin/task/checkToken',
withCredentials: true,
method: 'get',
});
};
......@@ -99,12 +99,44 @@
var obj = {
points_id: this.courses.points_id
};
// configurationModule.getMoreCourses(obj);
this.intoCourseMore(obj);
},
// 进入相关课程
enterCourse(obj) {
// configurationModule.intoCourse(obj);
this.intoCourse(obj);
},
intoCourseMore(obj){
let appModuleModel=[
{
'key':'className',
'value':'value=com.picahealth.yunque.activitys.famousteacherschool.AllDiseaseActivity###MicroProfessionTableController'
},
{
key:'pointsId',
value:obj.points_id
}
];
this.$rocNative.dispatchEventByModuleCode({
modeCode: 'M200',
jsonString: appModuleModel,
});
},
intoCourse(obj){
let appModuleModel=[
{
'key':'className',
'value':'value=com.picahealth.yunque.activitys.courseplaynew.CourseIntroduceActivity###WeexCourseIntroViewController'
},
{
key:'courseId',
value:obj.course_id
}
];
this.$rocNative.dispatchEventByModuleCode({
modeCode: 'M200',
jsonString: appModuleModel,
});
}
},
};
......
......@@ -250,7 +250,6 @@
if(sendObj.user_role_list=="R004"){
this.dataOkForExam();
}
alert(123)
//configurationModule.checkIDCardAndEducation(sendObj); 111
}else {
this.$toast("网络异常,请稍后再试");
......@@ -278,7 +277,8 @@
this.addLogicForExam();
},
goExam(index, obj) {
localStorage.setItem('keyIndex', this.keyIndex)
this.$storejs.set('keyIndex',this.keyIndex)
//localStorage.setItem('keyIndex', this.keyIndex)
if (this.examContent.allowFlag == 1) {// 加入项目(项目考试组件有权限)
this.currentIndex = index;
this.currentObj = obj;
......@@ -457,13 +457,16 @@
}
}
}else {// 课程项
console.log(obj,"iiiiiiiiiii")
if (this.examContent.exam_order == 5 || index == 0) { // 顺序并列, 或者顺序贯序但为第一项
// modal.alert({message:'999'})
configurationModule.intoCourse(obj);
//configurationModule.intoCourse(obj);
this.goStudyNative(obj)
}else {
const lastItem = this.examContent.allLists[index - 1];
if ((lastItem.testNumFlag > 0 && lastItem.answerResultModel.pass_flag == 5) || lastItem.progress >= 0) {
configurationModule.intoCourse(obj);
//configurationModule.intoCourse(obj);
this.goStudyNative(obj)
}else {
this.$toast('请按顺序完成学习及考试')
}
......@@ -471,16 +474,20 @@
}
},
goStudyNative(obj){
this.appModuleModel=[{
}]
const paramList = setEventByModuleCode(
JSON.parse(JSON.stringify(this.appModuleModel))
);
this.$rocNative.dispatchEventByModuleCode({
modeCode: 'M200',
jsonString: paramList,
});
let appModuleModel=[
{
'key':'className',
'value':'value=com.picahealth.yunque.activitys.courseplaynew.CourseIntroduceActivity###WeexCourseIntroViewController'
},
{
key:'courseId',
value:obj.course_id
}
];
this.$rocNative.dispatchEventByModuleCode({
modeCode: 'M200',
jsonString: appModuleModel,
});
},
diaLogConfirm(){
this.$dialog
......
import { router, store, vueApp } from '@pica-cli/vue-cli-plugin-pica-cli-plugin/auto';
import '@/router';
console.log('router, store, vueApp: ', router, store, vueApp);
import Vue from 'vue';
import rocNative from '@/utils/jsbridge';
import '@/utils/wxShare';
import storejs from 'storejs';
// import PicaGuideApp from 'pica-guide-app';
import WebBuriedPoint, {sendBuriedData} from '@pica-core/web-buried-point';
const {name} = require('../../package.json');
Vue.prototype.$rocNative = new rocNative();
Vue.prototype.$sendBuriedData = sendBuriedData;
Vue.prototype.$storejs = storejs;
Vue.use(WebBuriedPoint, {
class_name: name,
url: `${process.env.VUE_APP_SERVICE_URL}/file/log/trace1`,
});
// 助诊方式
export const diagnoseTypeList = [
{
label: '语音助诊',
value: 1,
},
{
label: '图文助诊',
value: 2,
},
];
export const placeholderText =
'为了更好地为您服务,请尽量完善以下信息: \n1、本次问诊想解决什么问题? \n2、之前做过什么检查及结果? \n3、线下医生的诊断结果是什么? \n4、已使用过的药品和疗效?';
export const ENV_CONFIG = {
development: {
baseUrl: 'https://dev-sc.yunqueyi.com',
shareUrl: 'https://dev-phome.yunqueyi.com',
appId: 'wxf4e66242d31c81c2', // 用于微信授权登录(张平)
// appId: 'wxcf79dbdc24cb684b',
phomeUrl: 'https://dev-phome.yunqueyi.com',
type: 1,
colseUrl: 'https://dev-phome.yunqueyi.com/pica_circle_ssr/middle',
kfaccid: 'picakf_dev',
},
dev: {
baseUrl: 'https://dev-sc.yunqueyi.com',
shareUrl: 'https://dev-phome.yunqueyi.com',
appId: 'wxf4e66242d31c81c2', // 用于微信授权登录(张平)
// appId: 'wxcf79dbdc24cb684b',
type: 1,
colseUrl: 'https://dev-phome.yunqueyi.com/pica_circle_ssr/middle',
kfaccid: 'picakf_dev',
},
testing: {
baseUrl: 'https://test1-sc.yunqueyi.com',
shareUrl: 'https://test1-phome.yunqueyi.com',
appId: 'wxcaad75b7fff5659c', // 用于微信授权登录()
// appId: 'wx2c577552a2d28550',
type: 15,
colseUrl: 'https://test1-phome.yunqueyi.com/pica_circle_ssr/middle',
kfaccid: 'picakf_test',
},
uat: {
baseUrl: 'https://uat-sc.yunqueyi.com',
shareUrl: 'https://uat-phome.yunqueyi.com',
appId: 'wx342ef0e5afee54a7', // 用于微信授权登录(于蛟)
// appId: 'wx85f38ae09d22b12e',
type: 30,
colseUrl: 'https://uat-phome.yunqueyi.com/pica_circle_ssr/middle',
kfaccid: 'picakf_uat',
},
production: {
baseUrl: 'https://sc.yunqueyi.com',
shareUrl: 'https://phome.yunqueyi.com',
appId: 'wx2c577552a2d28550', // 用于微信授权登录
type: 5,
colseUrl: 'https://phome.yunqueyi.com/pica_circle_ssr/middle',
kfaccid: 'picakf',
},
};
// miniprogramType 小程序类型,0 正式版,1,测试版,2预览版
export const MINIPROGRAMTYPE = {
dev: 2,
testing: 2,
uat: 2,
production: 0,
};
export const miniprogramType = MINIPROGRAMTYPE[process.env.VUE_APP_ENV];
export const PHOME_URL = {
dev: 'https://dev-phome.yunqueyi.com',
testing: 'https://test1-phome.yunqueyi.com',
uat: 'https://uat-phome.yunqueyi.com',
production: 'https://phome.yunqueyi.com'
};
export const phomeUrl = PHOME_URL[process.env.VUE_APP_ENV];
此差异已折叠。
/*
* @Author: souse
* @Date: 2019-08-12 18:08:07
* @Last Modified by: souse
* @Last Modified time: 2019-08-13 19:17:00
* @Descript 和app交互的接口调用 单例模式
*/
const ARRAY_CLASS = '[object Array]';
const _toString = Object.prototype.toString;
/**
* set default options
*/
export const JsBridgeOptions = {
GLOBAL_NAME: 'rocNative',
NATIVE_IOS_NAME: 'rociOS',
NATIVE_ANDROID_NAME: '__rocAndroid',
initMethodsWithCallBack: [
'getToken',
'getAppVersionCode',
'upGradeVersion',
'getUserInfo',
'getLocalData',
'getStatusBarHeight',
'checkPermissions',
'getRecentContacts',
'openMiniProgram',
], // value is string
initMethodsWithoutCallBack: [
'gotoLogin',
'appInit',
'goBack',
'shareWechat',
'showNativeToast',
'dispatchEventByModuleCode',
'appBuryingPointEntrust',
'webLoadSuccess',
'sendBuriedPoint',
'openErrorDebug',
'showProgress',
'closeWebViewPath',
'uploadVideo',
'openVideo',
'openImSession',
'openImTeamSession',
], // value is string
};
/**
* @description
* @author souse
* @date 2019-08-12
* @export
* @class PicaJsBridge
*/
export default class PicaJsBridge {
constructor(options = JsBridgeOptions) {
const initMethodsWithCallBack = options.initMethodsWithCallBack;
const initMethodsWithoutCallBack = options.initMethodsWithoutCallBack;
this._callbakFns = {};
this._callbackId = 0;
this._GLOBAL_NAME = options.GLOBAL_NAME;
this._NATIVE_IOS_NAME = options.NATIVE_IOS_NAME;
this._NATIVE_ANDROID_NAME = options.NATIVE_ANDROID_NAME;
this.isIOS = this._isIos();
this.isAndroid = this._isAndroid();
this.isWeb = this._isWeb();
if (
_toString.call(initMethodsWithCallBack) === ARRAY_CLASS &&
initMethodsWithCallBack.length !== 0
) {
this.registerMethods(initMethodsWithCallBack, true);
}
if (
_toString.call(initMethodsWithoutCallBack) === ARRAY_CLASS &&
initMethodsWithoutCallBack.length !== 0
) {
this.registerMethods(initMethodsWithoutCallBack, false);
}
this.mountToWindow();
}
// is ios flag
_isIos() {
return !!(
window.webkit &&
window.webkit.messageHandlers &&
window.webkit.messageHandlers[this._NATIVE_IOS_NAME]
);
}
// is android flag
_isAndroid() {
return !!window[this._NATIVE_ANDROID_NAME];
}
// is web flag
_isWeb() {
return !this.isIOS && !this.isAndroid;
}
// register method width callback in window
_registerMethod(method) {
const _this = this;
_this[method] = (param) => {
return new Promise((response, reject) => {
_this._callNative(method, param, function (result) {
response(result);
})
? void 0
: reject(`${method} not handled.`);
});
};
}
// register method widthout callback in window
_registerMethodWithoutMethod(method) {
const _this = this;
_this[method] = (param) => {
return new Promise((response, reject) => {
_this._callNative(method, param, null)
? response('success')
: reject(`${method} not handled.`);
});
};
}
// window call app method
_callNative(name, param, callbackFn) {
let callbackId = 0;
let pm = '';
if (typeof callbackFn === 'function') {
this._callbackId++;
callbackId = this._callbackId;
this._callbakFns[callbackId] = callbackFn;
}
pm = JSON.stringify({
name,
callbackId: callbackId ? callbackId.toString() : '',
param: param || {},
});
if (this.isAndroid) {
window[this._NATIVE_ANDROID_NAME].postMessage(pm);
return true;
}
if (this.isIOS) {
window.webkit.messageHandlers[this._NATIVE_IOS_NAME].postMessage(pm);
return true;
}
return false;
}
// app call window method
__nativeCall(name, callbackId, result) {
const wFun = window[callbackId];
const fun = callbackId && this._callbakFns[callbackId];
if (wFun && typeof wFun === 'function') {
wFun(result);
return;
}
delete this._callbakFns[callbackId];
if (fun && typeof fun === 'function') fun(result);
}
// batch register methods
registerMethods(methods = [], widthCallback) {
if (undefined === widthCallback)
throw Error(
'widthCallback flag not defined, registerMethods should take second param value(true/false) for is not has callback.'
);
methods.forEach((m) => {
widthCallback === true
? this._registerMethod(m)
: this._registerMethodWithoutMethod(m);
});
}
// async call app method do not need register
asyncCallNative(method, param) {
const _this = this;
return new Promise((resolve) => {
_this._callNative(method, param, function (result) {
resolve(result);
});
});
}
// call app method direct without register and callback
callNative(method, param) {
return this._callNative(method, param, null);
}
// register jsbridge to window
mountToWindow() {
window[this._GLOBAL_NAME] = this;
}
}
export const getPhoneParameters = () => {
};
export const ifLYStartSpeechToText = () => {
};
export const ifLYStopSpeechToText = () => {
};
// export const appInterface = (callName, params, functionName) => {
// const rocNative = new PicaJsBridge();
// return rocNative.getAppVersionCode().then(res => {
// if (res.versionCode < '3.7.8') {
// Promise.reject();
// } else {
// window.prompt(callName, parmas)
// }
// });
// };
......@@ -22,6 +22,7 @@
</style>
<script>
import storejs from 'storejs';
import picaHeader from '@/components/stroke/picaHeader'
import examHistory from '@/components/stroke/examHistory'
import { getCoopExamResultNews ,getCoopResultNewsLocal} from '@/api/exam.js';
......@@ -31,16 +32,17 @@
isPassExam: false,
showHeaderH:false,
historyList:[],
examType: ''
examType: '',
token:""
}),
computed: {
},
components:{picaHeader,examHistory},
created () {
// this.historyList = this.$route.query.historyList
this.id = this.$route.query.examId
this.id = this.$route.query.examId;
this.token=storejs.get('token');
this.init()
},
methods: {
init(){
......@@ -48,7 +50,7 @@
if(this.$route.query.examType == 'local'){
funCoop=getCoopResultNewsLocal
}
funCoop({examId:this.id}).catch(res=>{
funCoop({examId:this.id,token:this.token}).catch(res=>{
this.historyList = res.data.examRecordList
this.historyList.map(res=>{
res.createdTime = res.createdTime.substring(0,10)
......
......@@ -116,7 +116,6 @@
// import WxcLoading from '../../components/wxc-loading'
//let modal = weex.requireModule('modal')
//import WxcLoading from '../../components/wxc-loading'
import storejs from 'storejs';
import { getCoopExamWrongRecords} from '@/api/exam.js';
export default {
//components: { WxcLoading },
......@@ -127,13 +126,13 @@
wrongNum: '',
headBg: '#ffffff',
headHeight: 0,
token:"FFA8F78823F44BEC86E5BD816BDA73D5"
token:""
}),
computed: {
},
created () {
this.token=storejs.get('token');
this.init()
this.token=this.$storejs.get('token');
this.init();
},
methods: {
init() {
......
......@@ -215,7 +215,6 @@
</style>
<script>
import storejs from 'storejs';
//import { WxcButton, WxcMinibar, WxcCountdown } from 'weex-ui'
// import WxcLoading from '../../components/wxc-loading'
import PicaRadio from '@/components/pica-radio'
......@@ -257,13 +256,13 @@ export default {
borderRadius: 0,
backgroundColor: '#58b5a8',
},
token:"FFA8F78823F44BEC86E5BD816BDA73D5"
token:""
}
},
computed: {
},
created () {
this.token= storejs.get('token');
this.token=this.$storejs.get('token');
this.startNum = this.$route.query.startNum || -1
this.init();
// weex.requireModule('globalEvent').addEventListener("goPreviousPage", e=> {//监听物理返回上一页
......
......@@ -19,7 +19,6 @@
</style>
<script>
import storejs from 'storejs';
import picaHeader from '@/components/stroke/picaHeader'
import livesExamHistory from "@/components/stroke/livesExamHistory";
import { getCoopLiveExam } from '@/api/storke.js';
......@@ -42,8 +41,7 @@
livesExamHistory,
picaHeader},
created () {
this.token=storejs.get("token");
// this.historyList = this.$route.query.historyList
this.token=this.$storejs.get('token');
this.id = this.$route.query.projectId
this.init()
},
......
......@@ -18,7 +18,6 @@
}
</style>
<script>
import storejs from 'storejs';
import examInfo from '@/components/stroke/examInfo'
import examHistory from '@/components/stroke/examHistory'
import picaHeader from '@/components/stroke/picaHeader'
......@@ -55,7 +54,7 @@ import { getCoopExam ,getCoopExamResultNew,getCoopExamResultNews} from '@/api/ex
//WxcLoading
},
created () {
this.token=storejs.get('token');
this.token=this.$storejs.get('token');
this.examId = this.$route.query.examId
this.from = this.$route.query.from
this.showHeader = this.from != 'exam'
......@@ -75,54 +74,62 @@ import { getCoopExam ,getCoopExamResultNew,getCoopExamResultNews} from '@/api/ex
if (this.from !== "exam" && !(this.answerResultId > 0)){//开始页面
this.type = 2
getCoopExam({"examId":this.examId, "type": 5,token:this.token}).catch(res=>{
if (res.data && res.data.respCode == 200){
this.exam = res.data.examBaseInfo
}else {
if(res.data){
if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
};
if(res.data.respCode == 200){
this.exam = res.data.examBaseInfo
}
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
}
})
}else{//结果页面
this.hasWrong = false;
getCoopExamResultNew({answerResultId:this.answerResultId, type: 5,token:this.token}).catch(res=>{
if (res.data && res.data.respCode == 200){
if(res.data){
if (res.data.respCode == 200){
// weex.requireModule('CourseModule').finishTest(res.data)
this.exam = res.data.answerResult
this.type = this.exam.passFlag == 5 ? 1 : 0
}else {
this.type = this.exam.passFlag == 5 ? 1 : 0;
}else if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
}else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
});
// this.GET('app/projectExam/result',{answerResultId:this.answerResultId, type: 5},res=>{
// if (res.data && res.data.respCode == 200){
// weex.requireModule('CourseModule').finishTest(res.data)
// this.exam = res.data.answerResult
// this.type = this.exam.passFlag == 5 ? 1 : 0
// }else {
// this.hasWrong = true;
// modal.toast({
// message: res.data.respMsg,
// duration: 1.0
// })
// }
// })
}
this.hasWrong = false;
getCoopExamResultNews({examId:this.examId,pageNo:1,pageSize:3, type: 5,token:this.token}).catch(res=>{
this.isShow = false
if (res.data && res.data.respCode == 200){
if(res.data){
if (res.data.respCode == 200){
this.historyList = res.data.examRecordList
this.historyList.map(res=>{
res.createdTime = res.createdTime.substring(0,10)
})
}else {
this.hasWrong = true;
this.$toast(res.data.respMsg)
// modal.toast({
// message: res.data.respMsg,
// duration: 1.0
// })
}else if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
}else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
}else{
this.hasWrong = true;
this.$toast(res.data.respMsg)
}
})
// this.GET('app/projectExam/results',{examId:this.examId,pageNo:1,pageSize:3, type: 5},res=>{
......
......@@ -15,8 +15,6 @@
// let storage = weex.requireModule('storage')
//import WxcDialog from '../components/wxc-dialog'
import storejs from 'storejs';
import componentMain from '@/components/stroke/componentMain';
import CommonHeader from '@/components/common/header';
import livesExamHistory from "@/components/stroke/livesExamHistory";
......@@ -90,7 +88,7 @@ import { getCoopExamResult } from '@/api/exam.js';
needMarginBottom: false,
marginBottom: '0px',
parms:{
id: 4, token: "F693C3AF6D344B7B825D8CC39D495D8E"
id: 4, token: "6A713648AB954CAEAE6B39265F624B52"
},
flagLoading:0,
title:"",
......@@ -115,11 +113,22 @@ import { getCoopExamResult } from '@/api/exam.js';
this.allowFlag = this.$route.query.allowFlag || 1;
this.projectId = this.$route.query.projectId || 2;
this.parms.id = this.projectId;
//this.parms.token = this.$route.query.token || '';
storejs.set('token',this.parms.token);
this.init();
let _that = this;
this.$rocNative.getUserInfo()
.then((res) => {
let token=""
if (res.userToken) {
token=res.userToken
} else {
token=_that.$route.query.token
}
_that.parms.token = token;
_that.$storejs.set('token', token);
this.init();
})
.catch(() => {
this.init();
});
},
mounted() {
// globalEvent.addEventListener("dataOkForExam",() => {
......@@ -133,9 +142,6 @@ import { getCoopExamResult } from '@/api/exam.js';
window.addEventListener('scroll', this.scrollToTop)
},
beforeDestroy() {
// modal.alert({message: 'i am in destroyed'})
},
methods: {
scrollToTop() {
var scrollTop = window.pageYOffset || document.documentElement. scrollTop || document.body.scrollTop;
......@@ -305,6 +311,11 @@ import { getCoopExamResult } from '@/api/exam.js';
if (this.flagLoading !=5) {
this.flagLoading=this.flagLoading + 1
}
if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
};
this.infoLists = res.data.texts; // 简介(文案)组件
this.sliderLists = res.data.carousels; // 轮播图组件
this.projectName = res.data.projectName; // 项目名称
......@@ -317,6 +328,11 @@ import { getCoopExamResult } from '@/api/exam.js';
getBottom() {
getCoopBottom(this.parms).catch((res) => {
if (res && res.data) {
if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
};
if (this.flagLoading !=5) {
this.flagLoading=this.flagLoading + 1
}
......@@ -336,6 +352,11 @@ import { getCoopExamResult } from '@/api/exam.js';
getCoopMiddle(this.parms).catch((res) => {
this.isShow = false;
if (res && res.data) {
if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
};
if (this.flagLoading !=5) {
this.flagLoading=this.flagLoading + 1
}
......@@ -408,10 +429,14 @@ import { getCoopExamResult } from '@/api/exam.js';
const _self = this;
getCoopLiveExam(this.parms).catch((res) => {
if (res && res.data) {
if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
}
if (this.flagLoading !=5) {
this.flagLoading=this.flagLoading + 1
}
console.log(111,res.data.pLiveMapping)
this.pLiveMapping = res.data.pLiveMapping;
if (res.data.pLiveExamList && res.data.pLiveExamList.length) {
this.localHistoryList = res.data.pLiveExamList;
......@@ -428,6 +453,11 @@ import { getCoopExamResult } from '@/api/exam.js';
//const _self = this;
getCoopOrder(this.parms).catch((res) => {
if (res && res.data) {
if (res.data.respCode == 1000) {
return this.$toast(res.data.respMsg);
} else if (res.data.respCode == 401 || res.data.respCode == 404) {
return this.$rocNative.gotoLogin();
}
// 组件type
// module_type:1、轮播图组件 5、文案组件 10、考试组件 15、关联课程组件 20、链接组件 25、现场考试组件
if (this.flagLoading !=5) {
......@@ -558,6 +588,13 @@ import { getCoopExamResult } from '@/api/exam.js';
wxcMaskSetHidden () {
// 此处必须设置,组件为无状态组件,自己管理
this.showCodeInputDialog = false;
},
consulOrder() {
try {
this.$rocNative.goBack();
} catch (error) {
this.$router.go(-1);
}
}
},
......
......@@ -1212,7 +1212,7 @@
"cheerio" "^1.0.0-rc.10"
"colors-console" "^1.0.3"
"@pica-core/web-buried-point@^1.0.15":
"@pica-core/web-buried-point@^1.0.20":
"integrity" "sha512-wr/GZlpPWZr8U0Y+YIx4brzazGj1AKnBL0kH/lI3/CVX+8d4cGFrn/Pv6j56DyyZ58hbGbsdJmlbJ/4L+qz/Qw=="
"resolved" "http://192.168.110.93:4873/@pica-core%2fweb-buried-point/-/web-buried-point-1.0.20.tgz"
"version" "1.0.20"
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册