Commit 41d545eb by li

二合一

parents
const config = {
appBaseUrl: '',
name:""
}
module.exports = config;
\ No newline at end of file
if(process.env.NODE_ENV === 'development'){
//开发环境
ENV_CONFIG = require('.env.dev.js');
}else{
//生产环境
ENV_CONFIG = require('.env.prod.js');
}
//给环境变量process.uniEnv赋值
if (ENV_CONFIG) {
process.uniEnv = {};
for (let key in ENV_CONFIG) {
process.uniEnv[key] = ENV_CONFIG[key];
}
}
\ No newline at end of file
const config = {
appBaseUrl: '',
name:""
}
module.exports = config;
<script>
export default {
onLaunch: function() {
if(process.uniEnv.name == 'bjst')
{
document.getElementsByTagName('body')[0].style.background = "linear-gradient(0deg, #187B47, #13A13F, #15A147, #12794C)"
}
// 禁止 ios 缩放屏幕
document.addEventListener('gesturestart', function (event) {
event.preventDefault();
});
// 禁止移动端(IOS)双击页面变大
let touchTime = 0;
document.addEventListener('touchstart', function (event) {
if (event.touches.length > 1) {
event.preventDefault();
}
});
document.addEventListener(
'touchend',
function (event) {
//记录当前点击的时间与下一次时间的间隔
const nowTime = new Date();
if (nowTime.getTime() - touchTime <= 300) {
// event.preventDefault();
}
touchTime = nowTime.getTime();
},
false
);
let userAgentInfo = navigator.userAgent;
let Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'];
let getArr = Agents.filter(i => userAgentInfo.includes(i));
let isMobile = getArr.length ? true : false;
// this.$store.state.isMobile = isMobile
if (!(window && window.plus) && ((location.host.includes("127.0.0.1") || location.host.includes("localhost")))) {
if (!isMobile && window.frames.length == parent.frames.length) {
//pc携带参数跳转
let getRouter = window.location.href.split("#");
if (getRouter.length > 1) {
window.location.href = window.location.origin + "/pc.html#" + getRouter.pop(); //编码
return;
}
window.location.href = window.location.origin + "/pc.html";
}
}
},
onShow: function() {
},
onHide: function() {
}
}
</script>
<style lang="scss">
:root{
// --theme--:#00ba29;
// --borderTheme--:rgba(5, 156, 92, 0.2);
--theme--:#f18403;
--borderTheme--:#A3A3A3;
}
// body{
// background: linear-gradient(0deg, #187B47, #13A13F, #15A147, #12794C);
// }
/*每个页面公共css */
@import 'vant/lib/index.css';
@import "uview-ui/index.scss";
.u-form-item__body__right__message{
display: none !important;
}
uni-toast .uni-toast{
display: flex;
align-items: center;
padding: 20rpx 15rpx;
width: auto;
box-shadow: 0rpx 2rpx 12rpx 0rpx rgba(0,0,0,0.1);
border: 1px solid #D3D4D3;
background: white !important;
color: black !important;
font-family: Arial;
font-weight: 400;
font-size: 30rpx;
color: #606266;
}
uni-toast .uni-simple-toast__text{
background: white !important;
color: black !important;
}
.uni-toast .uni-toast__content{
margin: 0;
margin-left: 10rpx;
white-space: nowrap;
}
uni-toast .uni-toast__icon{
margin: 0;
}
</style>
uni.$u.http.setConfig((config) => {
/* config 为默认全局配置*/
config.baseURL = process.uniEnv.appBaseUrl; /* 根域名 */
return config
})
uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
config.header = {
...config.header,
// a: 1 // 演示拦截器header加参
}
return config
}, config => { // 可使用async await 做异步操作
return Promise.reject(config)
})
uni.$u.http.interceptors.response.use((response) => {
console.log(response)
if (response.data.code == 200)
return response.data.data
else {
uni.showToast({
title: response.data.msg,
image:require("@/static/fail.png"),
duration:1000,
})
return response.data.data
}
}, (response) => {
uni.showToast({
title: response.data.message,
image:require("@/static/fail.png"),
duration:1000,
})
return Promise.reject(response)
})
\ No newline at end of file
export function getIssue(data) {
return uni.$u.http.get('/issue/get',{
params:data
})
}
export function getIssueType() {
return uni.$u.http.get('/issue/type')
}
export function submitIssue(data) {
return uni.$u.http.post('/issue/submit',data)
}
\ No newline at end of file
export function getSetting(data) {
return uni.$u.http.get('/issue/getDict',{
params:{
keywords:data
}
})
}
export function getAd(data) {
return uni.$u.http.get('/issue/getAd')
}
\ No newline at end of file
import ObsClient from "esdk-obs-browserjs"
import CryptoJS from "crypto-js"
export function upload(data, cb) {
return uni.$u.http.upload('/file/upload', {
filePath: data.url,
name: 'file',
timeout: 60000,
getTask: (task, options) => {
task.onProgressUpdate((res) => {
cb(res)
});
},
})
}
export function OBS() {
return uni.$u.http.get('/file/getStsToken')
}
export function obsJiami(file) {
return new Promise((res, rej) => {
var reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = () => {
var key = 'a63f22e7c4a5e167';
var wordArray = CryptoJS.lib.WordArray.create(reader
.result); // Convert: ArrayBuffer -> WordArray
var encrypted = CryptoJS.AES.encrypt(wordArray, CryptoJS.enc.Utf8.parse(key), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString();
// var fileEnc = encrypted
// console.log(fileEnc)
// return
res(encrypted)
};
reader.onerror = (e) => {
rej(e)
}
})
};
function convertWordArrayToUint8Array(wordArray) {
var arrayOfWords = wordArray.hasOwnProperty("words") ? wordArray.words : [];
var length = wordArray.hasOwnProperty("sigBytes") ? wordArray.sigBytes : arrayOfWords.length * 4;
var uInt8Array = new Uint8Array(length),
index = 0,
word, i;
for (i = 0; i < length; i++) {
word = arrayOfWords[i];
uInt8Array[index++] = word >> 24;
uInt8Array[index++] = (word >> 16) & 0xff;
uInt8Array[index++] = (word >> 8) & 0xff;
uInt8Array[index++] = word & 0xff;
}
return uInt8Array;
}
export function obsJiemi(url,flag = false) {
if(url.includes('myhuaweicloud'))
return new Promise((res, rej) => {
let xhr = new XMLHttpRequest()
let blob;
xhr.open('get', url)
xhr.setRequestHeader('Accept', getFileType(url))
xhr.responseType = 'blob'
xhr.onload = () => {
blob = xhr.response
let file;
file = new File([blob], url, {
type: getFileType(url)
})
var reader = new FileReader();
reader.readAsText(file);
reader.onload = () => {
var key = 'a63f22e7c4a5e167';
var decrypted = CryptoJS.AES.decrypt(reader.result, CryptoJS.enc.Utf8.parse(key), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}); // Decryption: I: Base64 encoded string (OpenSSL-format) -> O: WordArray
var typedArray = convertWordArrayToUint8Array(
decrypted); // Convert: WordArray -> typed array
var fileDec = new Blob([typedArray]); // Create blob from typed array
let url = URL.createObjectURL(fileDec)
if((file.type != 'image/*' && file.type != 'video/*') && flag){
var a = document.createElement("a");
var filename = file.name;
a.href = url;
a.download = filename.substring(filename.lastIndexOf('/')+1);
a.click();
window.URL.revokeObjectURL(url);
}
let param = {url:url,type:file.type}
res(param)
};
}
xhr.onerror = (error) => {
rej(error)
}
xhr.send()
})
else{
return new Promise((res,rej)=>{
let param = {url:url,type:getFileType(url)}
res(param)
})
}
}
function getFileType(url){
let arr = 'bmp,jpg,png,tif,gif,pcx,tga,exif,fpx,svg,psd,cdr,pcd,dxf,ufo,eps,ai,raw,WMF,webp,avif,apng'
let videoArr = 'asf,avi,mov,mpeg,mpg,vob,wmv,rm,rmvb,ogm,mkv,ifo,mp4,3gp,ts,mid,mp3,wav,wma,ra,ogg,flac,aac,ape,mpc,ac3,cda,m4a,mka,mp2,mpa,ofr,dts'
arr = arr.split(',')
videoArr = videoArr.split(',')
for(let i in arr){
if(url.includes(arr[i]) || url.includes(arr[i].toUpperCase()))
return 'image/*'
}
for(let i in videoArr){
if(url.includes(videoArr[i]) || url.includes(videoArr[i].toUpperCase()))
return 'video/*'
}
if(url.includes('txt') || url.includes('TXT')){
return "text/html,text/plain"
}
if(url.includes('pdf') || url.includes('PDF')){
return "application/pdf"
}
if(url.includes('doc') || url.includes('DOC')){
return "application/msword"
}
}
export function initObs(param) {
return new ObsClient({
access_key_id: param.accessKey,
secret_access_key: param.secretKey,
security_token: param.sessionToken,
server: param.endPoint
});
}
\ No newline at end of file
export function formAction(e,t){
if(e.issueType == 1){
t.form[1] = {
label: t.$t('TCGames ID'),
require: true,
prop: 'damanGameId',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[2] = {
label: t.$t('Amount'),
require: true,
prop: 'amount',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[3] = {
label: t.$t('Order number'),
require: true,
prop: 'orderNum',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[4] = {
label: t.$t('Deposit proof receipt detail'),
require: true,
prop: 'files',
type:"file",
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
}
if(e.issueType == 2){
t.form[1] = {
label: t.$t('TCGames ID'),
require: true,
prop: 'damanGameId',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[2] = {
label: t.$t('Amount'),
require: true,
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
prop: 'amount',
}
t.form[3] = {
label: t.$t('Order number'),
require: true,
prop: 'orderNum',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
}
if(e.issueType == 3){
t.form[1] = {
label: t.$t('TCGames ID'),
require: true,
prop: 'damanGameId',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[2] = {
label: t.$t('Amount'),
require: true,
prop: 'amount',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[3] = {
label: t.$t('Order number'),
require: true,
prop: 'orderNum',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[4] = {
label: t.$t('Provide Video Record of Bank Statement'),
require: true,
prop: 'files',
type:"file",
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
}
if(e.issueType == 4){
t.form[1] = {
label: t.$t('TCGames ID'),
require: true,
prop: 'damanGameId',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[2] = {
label: 'Provide Bank Passbook or M-Banking',
require: true,
prop: 'files',
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
type:"file"
}
t.form[3] = {
label: 'Correct IFSC',
require: true,
prop: 'correctIfsc',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
}
if(e.issueType == 5){
t.form[1] = {
label: t.$t('TCGames ID'),
require: true,
prop: 'damanGameId',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[2] = {
label: 'Provide Bank Passbook or M-Banking',
require: true,
prop: 'files',
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
type:"file"
}
t.form[3] = {
label: 'Correct Bank Name',
require: true,
prop: 'correctBankName',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
}
if(e.issueType == 6){
t.form[1] = {
label: t.$t('TCGames ID'),
require: true,
prop: 'damanGameId',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[2] = {
label: 'Register Phone Number',
require: true,
prop: 'registerPhoneNumber',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
}
if(e.issueType == 8){
t.form[1] = {
label: t.$t('TCGames ID'),
require: true,
prop: 'damanGameId',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[2] = {
label: 'Register Phone Number',
require: true,
prop: 'registerPhoneNumber',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[3] = {
label: 'Photo selfie holding passbook bank',
require: true,
prop: 'selfieHoldingCard',
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
type:"file"
}
t.form[4] = {
label: 'Photo selfie holding identitiy card',
require: true,
prop: 'selfieHoldingIdentitiyCard',
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
type:"file"
}
t.form[5] = {
label: 'Latest deposit receipt proof',
require: true,
prop: 'latestDepositReceiptProof',
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
type:"file"
}
t.form[6] = {
label: 'New password',
require: true,
prop: 'newPassword',
placeHolder:"Input new password",
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
}
}
}
if(e.issueType == 9){
t.form[1] = {
label: t.$t('TCGames ID'),
require: true,
prop: 'damanGameId',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[2] = {
label: 'Register Phone Number',
require: true,
prop: 'registerPhoneNumber',
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
}
t.form[3] = {
label: 'Photo selfie holding identitiy card',
require: true,
prop: 'selfieHoldingIdentitiyCard',
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
type:"file"
}
t.form[4] = {
label: 'Photo selfie holding USDT address',
require: true,
prop: 'selfieHoldingUSDTAddress',
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
type:"file"
}
t.form[5] = {
label: 'Photo of pass book',
require: true,
prop: 'passBook',
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
type:"file"
}
t.form[6] = {
label: 'Deposit receipt proof',
require: true,
prop: 'depositReceiptProof',
rule: {
type: 'array',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
type:"file"
}
t.form[7] = {
label: 'New USDT address',
require: true,
prop: 'newUSDTAddress',
placeHolder:"Input new USDT address",
rule: {
type: 'string',
required: true,
// message: t.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
}
}
}
}
\ No newline at end of file
{
"index":{
"title":"hello world"
}
}
\ No newline at end of file
import en from './en.json'
import zh from './zh.json'
export default {
en,
'zh-Hans': zh,
}
\ No newline at end of file
{
"index": {
"title": "Customer Service",
"form": {
"a1": "Submit Issue:",
"a2": "Please Select",
"ruleMes":"Required fields cannot be empty"
},
"btn": {
"a1": "Submit Issue",
"a2": "Check Issue Progress",
"a3": "Other Problem"
},
"success": "Success"
},
"components": {
"search": {
"label": "Search Issue",
"placeholder": "Please Input",
"button": "Search",
"status0":"Pending Review",
"status1":"Finish",
"TCGamesID":"TCGames ID",
"ID":"ID"
},
"form": {
"choose": "Choose File"
}
},
"notice": {
"title": "Notice",
"content1": "After submitting your question, you don’t need to worry, our specialists will handle it for you one by one!Select the problem you want to solve and fill in the information as requested! Then click submit application and wait for our customer service specialists to handle it for you! You can click the verification question progress button, enter the ID account, then select the question list, and finally press the search button. The status question will show that the customer service department will reply to you!Please do not submit orders repeatedly to avoid affecting the progress of your inquiry.",
"content2": "कृपया अपनी पूछताछ की प्रगति को प्रभावित करने से बचने के लिए बार-बार आदेश प्रस्तुत न करें।"
},
"TCGames ID": "TCGames ID:",
"Amount": "Amount:",
"UTR number": "UTR number:",
"Deposit proof receipt detail": "Deposit proof receipt detail:",
"Order number": "Order number:",
"Provide Video Record of Bank Statement": "Provide Video Record of Bank Statement:"
}
\ No newline at end of file
export function formaterUpcase(e){
let arr = e.split(' ')
for(let i in arr){
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1)
}
arr = arr.join(' ')
return arr
}
\ No newline at end of file
<template>
<view class="root">
<view class="content">
<view class="head">
<text>{{title}}</text>
<u--image @click="$emit('close')" :src="require('@/static/close.png')" width="22rpx" height="22rpx"></u--image>
</view>
<scroll-view scroll-y style="width: 100%;height: calc(100% - 112rpx);">
<view v-html="content" style="font-family: Arial;font-weight: 400;text-align: center;"></view>
</scroll-view>
</view>
</view>
</template>
<script>
export default {
name:"notice",
props:["title","content"],
data() {
return {
};
}
}
</script>
<style lang="scss" scoped>
.root{
height: 100%;
width: 100%;
position: fixed;
top:0;
left:0;
background:RGBA(204, 204, 204, 0.8);
display: flex;
// align-items: center;
justify-content: center;
z-index: 100;
.content{
border: 20rpx solid var(--borderTheme--);
width: calc(90% - 60rpx);
border-radius: 12rpx;
padding: 0 40rpx;
background: white;
padding-bottom:60rpx;
overflow: auto;
height: fit-content;
max-height: 70%;
margin-top: 25%;
.head{
display: flex;
justify-content: space-between;
align-items: center;
padding: 40rpx 0;
font-family: Arial;
font-weight: 400;
font-size: 32rpx;
color: #000000;
}
}
}
</style>
\ No newline at end of file
<template>
<view class="promproot" @click="$emit('close')">
<img :src="srcObj.url" alt="" v-if="srcObj.type == 'image/*'" />
<video :src="srcObj.url" alt="" v-if="srcObj.type == 'video/*'" controls />
<span @click="$emit('close')"
style="color: white;font-size: 32rpx;cursor: pointer;position: absolute;top: 50rpx;right: 50rpx;">X</span>
</view>
</template>
<script>
export default {
name: "propmt",
props: ["srcObj"],
data() {
return {
};
}
}
</script>
<style lang="scss" scoped>
.promproot {
position: fixed;
background-color: RGBA(204, 204, 204, 0.8);
top: 0;
left: 0;
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 10000000;
img {
max-width: 100%;
max-height: 100%;
}
video {
max-width: 100%;
max-height: 100%;
}
}
</style>
\ No newline at end of file
<template>
<view>
<u-swiper :list="list5" @change="e => current = e.current" :autoplay="true" height="calc((100vw - 40rpx) * 0.42)"
style="margin-top: 100rpx;background: transparent;margin-left: 20rpx;margin-right: 20rpx;" keyName="image" showTitle @click="goto">
<view slot="indicator" class="indicator">
<view class="indicator__dot" v-for="(item, index) in list5" :key="index"
:class="[index === current && 'indicator__dot--active']">
</view>
</view>
</u-swiper>
</view>
</template>
<script>
import { getAd } from "@/api/setting.js"
export default {
name: "swiper",
data() {
return {
list5: [],
current: 0
};
},
created() {
getAd().then(r=>{
r.sort((a,b)=>{
return a.sort - b.sort
})
this.list5 = r
})
},
methods:{
goto(e){
window.open(this.list5[e].link,'_blank')
}
}
}
</script>
<style lang="scss" scoped>
.indicator {
@include flex(row);
justify-content: center;
&__dot {
height: 6px;
width: 6px;
border-radius: 100px;
background-color: rgba(255, 255, 255, 0.35);
margin: 0 5px;
transition: background-color 0.3s;
&--active {
background-color: #ffffff;
}
}
}
.indicator-num {
padding: 2px 0;
background-color: rgba(0, 0, 0, 0.35);
border-radius: 100px;
width: 35px;
@include flex;
justify-content: center;
&__text {
color: #FFFFFF;
font-size: 12px;
}
}
</style>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="<%= BASE_URL %>static/logo.png"/>
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>
</title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/main.js"></script>
</body>
</html>
import App from './App'
// #ifndef VUE3
import Vue from 'vue'
import '.env.js'
import './uni.promisify.adaptor'
import uView from 'uview-ui'
import VueI18n from 'vue-i18n'
import messages from './assets/lang/index.js'
import store from './store' //store相关
import { formaterUpcase } from "./assets/utils/index.js"
// import Vue from 'vue';
import ElementUI from 'element-ui';
import vant from "vant"
import locale from 'element-ui/lib/locale/lang/en'
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI, {
size: 'medium' ,// set element-ui default size
locale
})
Vue.use(VueI18n)
Vue.use(vant)
// 创建实例
const i18n = new VueI18n({
locale: "zh-Hans",
messages,
silentFallbackWarn:true
});
// console.log = (function (fn) {
// return function () {
// // 关闭日志
// //fn("开启日志",...arguments);
// }
// })(console.log)
Vue.use(uView)
uni.$u.config.unit = 'rpx'
Vue.prototype.$store = store
Vue.prototype.$formaterUpcase = formaterUpcase
require('./api/config.js')
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
i18n,
store,
...App
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif
\ No newline at end of file
{
"name" : "Customer Service",
"appid" : "__UNI__EE8D8CD",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App特有相关 */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
/* 模块配置 */
"modules" : {},
/* 应用发布信息 */
"distribute" : {
/* android打包配置 */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios打包配置 */
"ios" : {},
/* SDK配置 */
"sdkConfigs" : {}
}
},
/* 快应用特有相关 */
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"h5" : {
"devServer" : {
"proxy" : {
// 代理配置
"/" : {
"target" : "http://38.47.232.137:18001/",
"changeOrigin" : true, // 是否跨域
"secure" : true, // 是否支持https协议的代理
"pathRewrite" : {
"^/" : "/"
} // 这个一定要加,意思就是把你项目中一dev开头的接口自动替换为 target + pathRewrite第二个参数来进行数据的请求(pathRewrite没有第二个参数的话直接为target)
}
},
"https" : false
},
"title" : "Customer Service",
"template" : "static/index.html",
"router" : {
"base" : "./"
}
},
"vueVersion" : "2",
"locale" : "en"
}
{
"name": "indiaapp",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@babel/runtime": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz",
"integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==",
"requires": {
"regenerator-runtime": "^0.14.0"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
}
}
},
"@intlify/core-base": {
"version": "9.10.2",
"resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.10.2.tgz",
"integrity": "sha512-HGStVnKobsJL0DoYIyRCGXBH63DMQqEZxDUGrkNI05FuTcruYUtOAxyL3zoAZu/uDGO6mcUvm3VXBaHG2GdZCg==",
"requires": {
"@intlify/message-compiler": "9.10.2",
"@intlify/shared": "9.10.2"
}
},
"@intlify/message-compiler": {
"version": "9.10.2",
"resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.10.2.tgz",
"integrity": "sha512-ntY/kfBwQRtX5Zh6wL8cSATujPzWW2ZQd1QwKyWwAy5fMqJyyixHMeovN4fmEyCqSu+hFfYOE63nU94evsy4YA==",
"requires": {
"@intlify/shared": "9.10.2",
"source-map-js": "^1.0.2"
}
},
"@intlify/shared": {
"version": "9.10.2",
"resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.10.2.tgz",
"integrity": "sha512-ttHCAJkRy7R5W2S9RVnN9KYQYPIpV2+GiS79T4EE37nrPyH6/1SrOh3bmdCRC1T3ocL8qCDx7x2lBJ0xaITU7Q=="
},
"@vant/icons": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@vant/icons/-/icons-3.0.2.tgz",
"integrity": "sha512-4OlRVMd0uiDtD9hgSISZW8hB95vU0fFtc41tQchRIyiXkR0tS+DydZOLb8/bQkithrNWhW7Uud38MbKjlJ9lJw=="
},
"@vant/popperjs": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@vant/popperjs/-/popperjs-1.3.0.tgz",
"integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
},
"@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
"integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA=="
},
"@vue/devtools-api": {
"version": "6.6.1",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz",
"integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA=="
},
"async-validator": {
"version": "1.8.5",
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
"integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
"requires": {
"babel-runtime": "6.x"
}
},
"axios": {
"version": "0.26.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
"integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
"requires": {
"follow-redirects": "^1.14.8"
}
},
"babel-helper-vue-jsx-merge-props": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
"integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
},
"babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
"requires": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
}
},
"blueimp-md5": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
"integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w=="
},
"core-js": {
"version": "2.6.12",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
},
"crypto-js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"deepmerge": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
},
"element-ui": {
"version": "2.15.14",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz",
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
"requires": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
"deepmerge": "^1.2.0",
"normalize-wheel": "^1.0.1",
"resize-observer-polyfill": "^1.5.0",
"throttle-debounce": "^1.0.1"
}
},
"esdk-obs-browserjs": {
"version": "3.23.5",
"resolved": "https://registry.npmjs.org/esdk-obs-browserjs/-/esdk-obs-browserjs-3.23.5.tgz",
"integrity": "sha512-i4DTT2bbE3fjy0H84hg1qBHjr5a9dbO39TmVfEkzkjBSNceOU/UX2UXORtjTojju6rpM4TiQh8CthcXeJKqbMA==",
"requires": {
"axios": "^0.26.1",
"blueimp-md5": "^2.18.0",
"js-base64": "^3.7.1",
"jssha": "^3.2.0",
"urijs": "^1.19.7"
}
},
"follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
},
"js-base64": {
"version": "3.7.7",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz",
"integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw=="
},
"jssha": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/jssha/-/jssha-3.3.1.tgz",
"integrity": "sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ=="
},
"normalize-wheel": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
"integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
},
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
"resize-observer-polyfill": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"source-map-js": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz",
"integrity": "sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw=="
},
"throttle-debounce": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
"integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
},
"urijs": {
"version": "1.19.11",
"resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz",
"integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ=="
},
"uview-ui": {
"version": "2.0.36",
"resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-2.0.36.tgz",
"integrity": "sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA=="
},
"vant": {
"version": "2.13.2",
"resolved": "https://registry.npmjs.org/vant/-/vant-2.13.2.tgz",
"integrity": "sha512-anZbbLqXCq+rUJk10D67mn+V/1/i9tfOTdoR+64B0e+0BzV3KFgpHBF76noLa+yX9i/L+8DeL560WMk0GEN38g==",
"requires": {
"@babel/runtime": "7.x",
"@vant/icons": "^3.0.2",
"@vant/popperjs": "^1.1.0",
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
"vue-lazyload": "1.2.3"
}
},
"vue-i18n": {
"version": "9.10.2",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.10.2.tgz",
"integrity": "sha512-ECJ8RIFd+3c1d3m1pctQ6ywG5Yj8Efy1oYoAKQ9neRdkLbuKLVeW4gaY5HPkD/9ssf1pOnUrmIFjx2/gkGxmEw==",
"requires": {
"@intlify/core-base": "9.10.2",
"@intlify/shared": "9.10.2",
"@vue/devtools-api": "^6.5.0"
}
},
"vue-lazyload": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
"integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
}
}
}
{
"name": "indiaapp",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"crypto-js": "^4.2.0",
"element-ui": "^2.15.14",
"esdk-obs-browserjs": "^3.23.5",
"uview-ui": "^2.0.36",
"vant": "^2.13.2",
"vue-i18n": "^9.10.2"
}
}
{
"easycom": {
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
},
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "Customer Service",
"navigationStyle": "custom"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "Customer Service",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
"uniIdRouter": {}
}
<template>
<view>
<view class="head">
<u--image class="logo" :showLoading="true" :src="src" :width="logoWidth" :height="logoHeight" @click="logo"></u--image>
<u-divider :text="$t('index.title')" class="devide" :textColor="textColor" textSize="40"></u-divider>
</view>
<hl-form @actionSheet="actionSheet" :currentItem="currentItem" :form="form" @search="searchShow = true" @select="select" v-if="hlFormShow" :issueType='issueType' :name='name'></hl-form>
<hlswiper></hlswiper>
<notice v-show="noticeShow" @close="noticeShow = false" :title="$t('notice.title')" :content="content"></notice>
<search @close="searchShow = false" v-if="searchShow"></search>
</view>
</template>
<script>
import hlForm from "@/components/hlForm.vue"
import notice from "@/components/notice.vue"
import search from "@/components/search.vue"
import hlswiper from "@/components/swiper.vue"
import { getSetting } from "@/api/setting.js"
import { formAction } from "@/assets/config.js"
import {
getIssue,
getIssueType
} from "@/api/issue.js"
export default {
components: {
hlForm,
notice,
search,
hlswiper
},
data() {
return {
content:"",
src: null,
logoWidth:332,
logoHeight:104,
noticeShow: true,
searchShow: false,
issueList: [],
issueType:0,
name:'',
hlFormShow:true,
currentItem:{},
textColor:'white',
form: [{
label: this.$t('index.form.a1'),
require: true,
actions: [],
prop: 'select',
rule: {
type: 'string',
required: true,
// message: this.$t('index.form.ruleMes'),
trigger: ['blur', 'change']
},
},
],
}
},
created() {
if(process.uniEnv.name == 'bjst')
{
this.src = require("@/static/logo.png")
this.textColor = 'white'
}
else{
this.src = require("@/static/indiaLogo.png")
this.textColor = 'black'
this.logoHeight = 117
this.logoWidth = 140
}
getSetting("sytc").then(r=>{
this.content = r
})
this.noticeShow = !this.$store.state.refresh
getIssueType().then((r) => {
this.issueList = r
for (let i in this.issueList) {
this.form[0].actions.push({
name: this.issueList[i].title,
issueType: this.issueList[i].id
})
}
})
},
methods: {
logo() {},
actionSheet(e){
this.currentItem = e
},
select(e){
this.form.splice(1,this.form.length - 2)
this.issueType = e.issueType
this.name = e.name
this.hlFormShow = false
this.$nextTick(()=>{
formAction(e,this)
this.hlFormShow = true
})
}
}
}
</script>
<style lang="scss" scoped>
.head {
padding-top: 30rpx;
position: relative;
.logo {
display: flex;
align-items: center;
justify-content: center;
}
.devide {
font-family: Arial;
font-weight: 400;
// margin-top: 60rpx;
}
}
</style>
\ No newline at end of file
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
<head>
<title>Customer Service</title>
<style>
html,body{
background-color: #EEEEEE;
padding: 0;
margin: 0;
}
iframe{
display:block;
background-color: #F5F5F5;
margin:0 auto;
border:none;
height: 100%;
}
</style>
</head>
<body>
<!--<iframe id="myframe" src="http://127.0.0.1/index.html" width="480" height="667" ></iframe>-->
</body>
<script>
if (location.href.includes("#")){
const prams=location.href.split("#").pop()
const iframe = document.createElement("iframe")
iframe.src = './index.html#'+prams
iframe.style.width = 480
document.body.appendChild(iframe)
}
// let getcode=function getcode(variable){
// var query = window.location.search.substring(1);
// console.log(query);
// var vars = query.split("&");
// for (var i=0;i<vars.length;i++) {
// var pair = vars[i].split("=");
// if(pair[0] == variable){return pair[1];}
// }
// return(false);
// }
// if(getcode("url")){
// document.getElementById("myframe").src="/#"+unescape(getcode("url"));
// }
</script>
</html>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
<!-- Open Graph data -->
<!-- <meta property="og:title" content="Title Here" /> -->
<!-- <meta property="og:url" content="http://www.example.com/" /> -->
<!-- <meta property="og:image" content="http://example.com/image.jpg" /> -->
<!-- <meta property="og:description" content="Description Here" /> -->
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<!-- <link rel="icon" href="<%= BASE_URL %>static/indiaLogo.png" /> -->
<link rel="icon" href="<%= BASE_URL %>static/indiaLogo.png" />
<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
</head>
<body>
<noscript>
<strong>Please enable JavaScript to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
\ No newline at end of file
//引入vue和vuex
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({ //全局变量定义
state: {
refresh:false
},
// 同步获取或者更新
mutations: {
setRefresh(state, flag) {
state.refresh = flag;
}
}
})
export default store
uni.addInterceptor({
returnValue (res) {
if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
return res;
}
return new Promise((resolve, reject) => {
res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
});
},
});
\ No newline at end of file
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
@import 'uview-ui/theme.scss';
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
/* 文字基本颜色 */
$uni-text-color:#333;//基本色
$uni-text-color-inverse:#fff;//反色
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
$uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0;
/* 背景颜色 */
$uni-bg-color:#ffffff;
$uni-bg-color-grey:#f8f8f8;
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
/* 边框颜色 */
$uni-border-color:#c8c7cc;
/* 尺寸变量 */
/* 文字尺寸 */
$uni-font-size-sm:12px;
$uni-font-size-base:14px;
$uni-font-size-lg:16px;
/* 图片尺寸 */
$uni-img-size-sm:20px;
$uni-img-size-base:26px;
$uni-img-size-lg:40px;
/* Border Radius */
$uni-border-radius-sm: 2px;
$uni-border-radius-base: 3px;
$uni-border-radius-lg: 6px;
$uni-border-radius-circle: 50%;
/* 水平间距 */
$uni-spacing-row-sm: 5px;
$uni-spacing-row-base: 10px;
$uni-spacing-row-lg: 15px;
/* 垂直间距 */
$uni-spacing-col-sm: 4px;
$uni-spacing-col-base: 8px;
$uni-spacing-col-lg: 12px;
/* 透明度 */
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
/* 文章场景相关 */
$uni-color-title: #2C405A; // 文章标题颜色
$uni-font-size-title:20px;
$uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:26px;
$uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:15px;
<!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>Customer Service</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=icon href=./static/indiaLogo.png><link rel=stylesheet href=./static/index.2da1efab.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=./static/js/chunk-vendors.021122cb.js></script><script src=./static/js/index.2afedac2.js></script></body></html>
\ No newline at end of file
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
<head>
<title>Customer Service</title>
<style>
html,body{
background-color: #EEEEEE;
padding: 0;
margin: 0;
}
iframe{
display:block;
background-color: #F5F5F5;
margin:0 auto;
border:none;
height: 100%;
}
</style>
</head>
<body>
<!--<iframe id="myframe" src="http://127.0.0.1/index.html" width="480" height="667" ></iframe>-->
</body>
<script>
if (location.href.includes("#")){
const prams=location.href.split("#").pop()
const iframe = document.createElement("iframe")
iframe.src = './index.html#'+prams
iframe.style.width = 480
document.body.appendChild(iframe)
}
// let getcode=function getcode(variable){
// var query = window.location.search.substring(1);
// console.log(query);
// var vars = query.split("&");
// for (var i=0;i<vars.length;i++) {
// var pair = vars[i].split("=");
// if(pair[0] == variable){return pair[1];}
// }
// return(false);
// }
// if(getcode("url")){
// document.getElementById("myframe").src="/#"+unescape(getcode("url"));
// }
</script>
</html>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
<!-- Open Graph data -->
<!-- <meta property="og:title" content="Title Here" /> -->
<!-- <meta property="og:url" content="http://www.example.com/" /> -->
<!-- <meta property="og:image" content="http://example.com/image.jpg" /> -->
<!-- <meta property="og:description" content="Description Here" /> -->
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<!-- <link rel="icon" href="<%= BASE_URL %>static/indiaLogo.png" /> -->
<link rel="icon" href="<%= BASE_URL %>static/indiaLogo.png" />
<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
</head>
<body>
<noscript>
<strong>Please enable JavaScript to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment