1.导税平板初版

main
cysamurai 1 month ago
parent 69ae3af441
commit 5b3aa0d688

@ -2,15 +2,59 @@
<div class="login-head">
<div class="head-title">
<image class="head-icon" src="/static/head-icon.png" />
<span>国家税务总局绍兴市越城税务局办税服务厅</span>
<span>国家税务总局XX市XX税务局办税服务厅</span>
</div>
<div class="head-time">
<span>2025-08-11 星期一 10:25:25</span>
<text class="dt-text">{{ currentDate }}</text>
<text class="dt-text">{{ currentDay }}</text>
<text class="dt-text">{{ currentTime }}</text>
</div>
</div>
</template>
<script>
<script setup>
import {
ref,
onMounted,
onUnmounted
} from 'vue'
const currentTime = ref('')
const currentDate = ref('')
const currentDay = ref('')
const updateDateTime = () => {
const now = new Date()
// (HH:MM:SS)
const hours = String(now.getHours()).padStart(2, '0')
const minutes = String(now.getMinutes()).padStart(2, '0')
const seconds = String(now.getSeconds()).padStart(2, '0')
currentTime.value = `${hours}:${minutes}:${seconds}`
// (YYYY-MM-DD)
const year = now.getFullYear()
const month = String(now.getMonth() + 1).padStart(2, '0')
const day = String(now.getDate()).padStart(2, '0')
currentDate.value = `${year}-${month}-${day}`
//
const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
currentDay.value = weekDays[now.getDay()]
};
let timer
onMounted(() => {
updateDateTime() //
timer = setInterval(updateDateTime, 1000) //
});
onUnmounted(() => {
if (timer) {
clearInterval(timer)
}
})
</script>
<style lang="scss">
@ -18,18 +62,18 @@
display: flex;
justify-content: space-between;
padding-top: $statusbar-height;
.head-title {
display: flex;
align-items: center;
height: 6vh;
.head-icon {
width: 40px;
height: 40px;
margin-left: 1vw;
}
span {
color: #fff;
font-size: 3vh;
@ -37,13 +81,13 @@
margin-left: 1vw;
}
}
.head-time {
display: flex;
align-items: center;
height: 6vh;
span {
.dt-text {
color: #fff;
font-size: 2vh;
margin-right: 1vw;

@ -32,19 +32,19 @@ ZPqdAjBLkf8NPZy7KVog98+iCTLq35DJ2ZVxkCxknA9YhiHVyXf4HPm4JlT7rW7o
Q+FzM3c=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICwTCCAkegAwIBAgIOY9gjdDaxS1xO6VZ0psAwCgYIKoZIzj0EAwMwYjELMAkG
MIICwDCCAkWgAwIBAgIOCfwGa9/UGPctNQVfK9swCgYIKoZIzj0EAwMwYjELMAkG
A1UEBgwCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEt
MCsGA1UEAwwkSHVhd2VpIENCRyBEZXZlbG9wZXIgUmVsYXRpb25zIENBIEcyMB4X
DTI1MDgyODA2MzMzNloXDTI1MDkxMTA2MzMzNlowcTELMAkGA1UEBhMCQ04xEDAO
BgNVBAoMB3Vua25vd24xHDAaBgNVBAsMEzE3NjIzNjk1MDMyMjk5MzU0ODkxMjAw
BgNVBAMMKXVua25vd24oMTc2MjM2OTUwMzIyOTkzNTQ4OSlcLERldmVsb3BtZW50
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh3qjdFfw5h+5PNGE2ERhOm6XQjY5
wNzeroxly6fWdT8QbPhNRgHG55mxB6sRId/1KsqJw81luM16K+o1MROfgKOB0TCB
zjAdBgNVHQ4EFgQU1+JKCTgMOqiNyX+wiBJkyUfuzZ4wDAYDVR0TAQH/BAIwADAf
BgNVHSMEGDAWgBTbXpOyI+jQ5P5xembppHNHW3/zXjBZBgNVHR8EUjBQME6gTKBK
hkhodHRwOi8vaDVob3N0aW5nLWRyY24uZGJhbmtjZG4uY24vY2NoNS9jcmwvaGRy
Y2FnMi9IdWF3ZWlDQkdIRFJHMmNybC5jcmwwDgYDVR0PAQH/BAQDAgeAMBMGA1Ud
JQQMMAoGCCsGAQUFBwMDMAoGCCqGSM49BAMDA2gAMGUCMQCLCq+G0+2XPfVIy6JK
yFbRPvGIi04HVOQ2/3wRRVJGJNxGHn6p9pAEYsdIH6/IksYCMEod/X4jzgXEvZ1v
m/hCqxGLF6umQ9bCRWeZTJaWZ2GLNW20ylZ5Ck5RJjrNHejnVg==
DTI1MDkxNzA3MDg1OFoXDTI2MDMxNjA3MDg1OFowbzELMAkGA1UEBhMCQ04xDzAN
BgNVBAoMBuaIkOaZlDEcMBoGA1UECwwTMTc2MjM2OTUwMzIyOTkzNTQ4OTExMC8G
A1UEAwwo5oiQ5pmUKDE3NjIzNjk1MDMyMjk5MzU0ODkpXCxEZXZlbG9wbWVudDBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABId6o3RX8OYfuTzRhNhEYTpul0I2OcDc
3q6MZcun1nU/EGz4TUYBxueZsQerESHf9SrKicPNZbjNeivqNTETn4CjgdEwgc4w
HQYDVR0OBBYEFNfiSgk4DDqojcl/sIgSZMlH7s2eMAwGA1UdEwEB/wQCMAAwHwYD
VR0jBBgwFoAU216TsiPo0OT+cXpm6aRzR1t/814wWQYDVR0fBFIwUDBOoEygSoZI
aHR0cDovL2g1aG9zdGluZy1kcmNuLmRiYW5rY2RuLmNuL2NjaDUvY3JsL2hkcmNh
ZzIvSHVhd2VpQ0JHSERSRzJjcmwuY3JsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUE
DDAKBggrBgEFBQcDAzAKBggqhkjOPQQDAwNpADBmAjEAufjI1vxxLmHE9m2bSwPW
0RLZ2pZcZBvOcA3vrg7SKhmgRN8s9oiCOF8mCeyY8IQ6AjEA1k+g17zU2CvYtc+8
Wg4/Lu2hLibW7LlwgxRhJ+74plENwJ2VwwEcI+tQShEoQQNe
-----END CERTIFICATE-----

@ -1,88 +1,127 @@
{
"name": "tax-guidance",
"appid": "__UNI__A083CF1",
"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
},
"vueVersion": "3",
"app-harmony": {
"distribute": {
"bundleName": "com.ziyun.taxguidance",
"signingConfigs": {
"default": {
"certpath": "ziyun_debug.cer",
"keyAlias": "ziyun_debug",
"keyPassword": "0000001C0A434C6EAD0E542DD56B04458C2B66CC2F31DBD5DAE971DCDC08E1E50F36DF37A9288699FBE4B97B",
"profile": "紫云智能导税调试Debug.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "ziyun_debug.p12",
"storePassword": "0000001C7E1A6AAD38035864C0D38355D93B30E5998D5D1674A5F09736672B97B02B5F8FE2566518D6E02BA6"
}
}
}
}
}
"name" : "紫云智能导税",
"appid" : "__UNI__A083CF1",
"description" : "紫云智能导税",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"popGesture" : "none", //
"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" : {
"dSYMs" : false
},
/* SDK */
"sdkConfigs" : {},
"icons" : {
"android" : {
"hdpi" : "unpackage/res/icons/72x72.png",
"xhdpi" : "unpackage/res/icons/96x96.png",
"xxhdpi" : "unpackage/res/icons/144x144.png",
"xxxhdpi" : "unpackage/res/icons/192x192.png"
},
"ios" : {
"appstore" : "unpackage/res/icons/1024x1024.png",
"ipad" : {
"app" : "unpackage/res/icons/76x76.png",
"app@2x" : "unpackage/res/icons/152x152.png",
"notification" : "unpackage/res/icons/20x20.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"proapp@2x" : "unpackage/res/icons/167x167.png",
"settings" : "unpackage/res/icons/29x29.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"spotlight" : "unpackage/res/icons/40x40.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png"
},
"iphone" : {
"app@2x" : "unpackage/res/icons/120x120.png",
"app@3x" : "unpackage/res/icons/180x180.png",
"notification@2x" : "unpackage/res/icons/40x40.png",
"notification@3x" : "unpackage/res/icons/60x60.png",
"settings@2x" : "unpackage/res/icons/58x58.png",
"settings@3x" : "unpackage/res/icons/87x87.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png",
"spotlight@3x" : "unpackage/res/icons/120x120.png"
}
}
}
}
},
/* */
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "3",
"app-harmony" : {
"distribute" : {
"bundleName" : "com.ziyun.taxguidance",
"signingConfigs" : {
"default" : {
"certpath" : "ziyun_debug.cer",
"keyAlias" : "ziyun_debug",
"keyPassword" : "0000001C0A434C6EAD0E542DD56B04458C2B66CC2F31DBD5DAE971DCDC08E1E50F36DF37A9288699FBE4B97B",
"profile" : "紫云智能导税调试Debug.p7b",
"signAlg" : "SHA256withECDSA",
"storeFile" : "ziyun_debug.p12",
"storePassword" : "0000001C7E1A6AAD38035864C0D38355D93B30E5998D5D1674A5F09736672B97B02B5F8FE2566518D6E02BA6"
}
},
"icons" : {
"foreground" : "E:/DNF70/icon_1024.png",
"background" : "E:/DNF70/icon_1024.png"
}
}
}
}

@ -1,13 +1,108 @@
{
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages
{
"path": "pages/login/login"
"path": "pages/login/login",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/index/index"
"path": "pages/index/index",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/table/table"
"path": "pages/table/dailyEntry",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/table/appointment",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/table/ticket",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/mod/pushMessage",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/mod/guidance",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/mod/multiInOne",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/mod/manager",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/mod/hallInfo",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/mod/hallManagment",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/queue/index",
"style": {
"app-plus": {
"popGesture": "none"
}
}
},
{
"path": "pages/queue/business-select",
"style": {
"app-plus": {
"popGesture": "none"
}
}
}
],
"globalStyle": {
@ -15,12 +110,13 @@
"backgroundColor": "#F8F8F8"
},
"easycom": {
"custom": {
"custom": {
"^tn-(.*)-(item|group)$": "@/uni_modules/tuniaoui-vue3/components/$1/src/$1-$2.vue",
"^tn-(.*)": "@/uni_modules/tuniaoui-vue3/components/$1/src/$1.vue"
// "^qiun-(.*)": "@/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue"
// |icons |shadow-root
// "^uni-((?!(shadow-root|icons)).*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
}
},
}
},
"uniIdRouter": {}
}
}

@ -3,60 +3,62 @@
<cheader></cheader>
<div class="index-body">
<div class="body-title">
<span class="title-mian">紫云纳税服务综合管理系统</span>
<span class="title-child">智能导税</span>
<span class="title-mian">智能导税</span>
<!-- <span class="title-mian">紫云纳税服务综合管理系统</span>
<span class="title-child">智能导税</span> -->
</div>
<div class="body-content">
<div class="emp-content">
<image src="/static/header_no.png" class="emp-image"></image>
<p class="emp-name emp-p">{{'欧阳永叔'}}</p>
<p class="emp-id emp-p">工号:{{'123456789'}}</p>
<tn-button width="180px" height="50px" @click="loginOutAction">退 </tn-button>
<image :src="userInfo.image" class="emp-image"></image>
<p class="emp-name emp-p">{{ userInfo.realName || '' }}</p>
<p class="emp-id emp-p">工号:{{ userInfo.id || '' }}</p>
<tn-button width="180px" height="50px" @click="loginOutAction()">退 </tn-button>
</div>
<div style="width: 2vw;"></div>
<div class="btn-content">
<div class="btn-row1">
<div class="row1-item1 col-center" @click="goToTable">
<uni-icons type="staff-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">今日进厅</p>
</div>
<div class="row1-item2 col-center">
<uni-icons type="notification-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">今日预约</p>
<div class="row1-item1 col-center" @click="goToQueue()">
<uni-icons type="compose" size="60" color="#fff"></uni-icons>
<p class="btn-p">导税取票</p>
</div>
<div class="row1-item3 col-center">
<div class="row1-item2 col-center" @click="goToTicket()">
<uni-icons type="list" size="60" color="#fff"></uni-icons>
<p class="btn-p">票号管理</p>
</div>
<div class="row1-item3 col-center" @click="goToManager()">
<uni-icons type="staff-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">网格员</p>
</div>
</div>
<div style="height: 2vh;"></div>
<div class="btn-row2">
<div class="row2-item1">
<div class="row2-item1-top row-center">
<uni-icons type="email-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">信息推送</p>
<div class="row2-item1-top row-center" @click="goToHallInfo()">
<uni-icons type="info" size="60" color="#fff"></uni-icons>
<p class="btn-p">大厅流量</p>
</div>
<div style="height: 2vh;"></div>
<div class="row2-item1-bottom row-center">
<uni-icons type="download-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">台账登记</p>
<div class="row2-item1-bottom row-center" @click="goToHallManagment()">
<uni-icons type="settings-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">大厅控制</p>
</div>
</div>
<div class="row2-item2">
<div class="row2-item2-left col-center">
<uni-icons type="checkbox-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">注册码验证</p>
<!-- <div class="row2-item2-left col-center">
<uni-icons type="home-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">快捷办税</p>
</div>
<div style="width: 2vh;"></div>
<div class="row2-item2-center col-center">
<div class="row2-item2-center col-center" @click="goToMultiInOne()">
<uni-icons type="auth-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">网格员</p>
</div>
<div style="width: 2vh;"></div>
<div class="row2-item2-right col-center">
<uni-icons type="home-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">一户式</p>
</div>
<div style="width: 2vh;"></div>
<div class="row2-item2-right col-center" >
<uni-icons type="settings-filled" size="60" color="#fff"></uni-icons>
<p class="btn-p">网格员</p>
</div> -->
<div v-for="item in 3" style="flex: 1;"></div>
</div>
</div>
</div>
@ -67,16 +69,117 @@
<script setup>
import cheader from '@/components/header.vue'
let goToTable = ()=>{
import TnIcon from '@/uni_modules/tuniaoui-vue3/components/icon/src/icon.vue'
import {
onBackPress,
onLoad
} from '@dcloudio/uni-app'
import {
ref
} from 'vue'
const userInfo = ref({
realName: '',
id: '',
image: ''
})
onBackPress(() => {
return true
})
onLoad(() => {
try {
const storageData = uni.getStorageSync('userInfo')
if (storageData) {
const parsedData = JSON.parse(storageData)
userInfo.value = {
realName: parsedData.realName || '',
id: parsedData.id || '',
image: parsedData.image || '/static/header_no.png'
}
console.log('用户信息:', userInfo.value)
}
} catch (error) {
console.error('获取用户信息失败:', error)
}
})
const goToGuidance = () => {
uni.navigateTo({
url: '/pages/mod/guidance?isFromTicket=false'
})
}
const goToDailyEntry = () => {
uni.navigateTo({
url: '/pages/table/dailyEntry'
})
}
const goToAppointment = () => {
uni.navigateTo({
url: '/pages/table/appointment'
})
}
const goToTicket = () => {
uni.navigateTo({
url: '/pages/table/ticket'
})
}
const goToMultiInOne = () => {
uni.navigateTo({
url:'/pages/table/table'
url: '/pages/mod/multiInOne'
})
}
let loginOutAction = ()=>{
const goToPushMessage = () => {
uni.navigateTo({
url: '/pages/mod/pushMessage'
})
}
const goToQueue = () => {
uni.navigateTo({
url: '/pages/queue/index'
})
}
const goToManager = () => {
uni.navigateTo({
url: '/pages/mod/manager'
})
}
const goToHallManagment = () => {
uni.navigateTo({
url: '/pages/mod/hallManagment'
})
}
const goToHallInfo = () => {
uni.navigateTo({
url:'/pages/login/login'
url: '/pages/mod/hallInfo'
})
}
const loginOutAction = () => {
uni.showModal({
title: '登出',
content: '是否退出登录,并返回到登录界面?',
success: (res) => {
if (res.confirm) {
//
uni.clearStorageSync()
//
uni.navigateTo({
url: '/pages/login/login'
})
}
//
}
})
}
</script>
@ -130,25 +233,30 @@
justify-content: center;
align-items: center;
padding: 30px;
.emp-image{
.emp-image {
// height: auto;
max-width: 12vw;
max-width: 80%;
object-fit: contain;
/* 保持比例 */
height: 30vh;
padding: 4px;
border: 1px solid #ddd;
}
.emp-p{
.emp-p {
color: #fff;
font-size: 20px;
font-weight: 800;
}
.emp-name{
.emp-name {
margin-top: 20px;
margin-bottom: 5px;
}
.emp-id{
.emp-id {
margin-bottom: 20px;
}
}
@ -162,17 +270,17 @@
grid-template-columns: repeat(3, 1fr);
.row1-item1 {
background-color: #990066;
background: #cc3333;
margin-right: 2vh;
}
.row1-item2 {
background-color: #993366;
background-color: #cc3366;
margin-right: 2vh;
}
.row1-item3 {
background-color: #996666;
background-color: #cc3399;
}
}
@ -186,15 +294,15 @@
margin-right: 2vh;
display: flex;
flex-direction: column;
.row2-item1-top{
.row2-item1-top {
flex: 1;
background-color: #33cc66;
background-color: #99ccff;
}
.row2-item1-bottom{
.row2-item1-bottom {
flex: 1;
background-color: #cc9966;
background-color: #9999ff;
}
}
@ -202,46 +310,46 @@
grid-column: span 2;
display: flex;
flex-direction: row;
.row2-item2-left{
.row2-item2-left {
flex: 1;
background-color: #99ffcc;
background-color: #ffcc99;
}
.row2-item2-center{
.row2-item2-center {
flex: 1;
background-color: #cccccc;
background-color: #ffcccc;
}
.row2-item2-right{
.row2-item2-right {
flex: 1;
background-color: #cc99cc;
background-color: #ffccff;
}
}
}
}
}
}
.col-center{
.col-center {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.row-center{
.row-center {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.btn-p{
.btn-p {
font-size: 22px;
font-weight: 800;
color: #fff;
margin: 8px;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}
</style>

@ -1,4 +1,4 @@
<template>
e<template>
<div class="page-container tn-gradient-bg__cool-5">
<cheader></cheader>
<div class="login-body">
@ -16,7 +16,7 @@
</template>
</tn-input>
<div class="divider"></div>
<tn-button width="250px" height="36px" @click="loginAction"> </tn-button>
<tn-button width="250px" height="36px" @click="loginAction()"> </tn-button>
</div>
</div>
</div>
@ -24,21 +24,32 @@
<script lang="ts" setup>
import cheader from '@/components/header.vue'
import { userLogin } from '@/api/index.js'
import { ref } from 'vue'
let username = ref('')
let password = ref('')
let loginAction = ()=>{
uni.navigateTo({
url:'/pages/index/index'
})
const username = ref('admin')
const password = ref('admin')
const loginAction = async () => {
const loginParams = {
username: username.value,
password: password.value,
tenantId: null
}
try {
const res = await userLogin(loginParams)
uni.setStorage({key: 'token', data: res.accessToken})
uni.setStorage({key: 'userInfo', data: JSON.stringify(res.userInfo)})
uni.navigateTo({
url: '/pages/index/index',
})
} catch (error) {
}
}
</script>
<style lang="scss">
.login-body {
display: flex;
align-items: center;
@ -60,13 +71,13 @@
font-size: 28px;
font-weight: 600;
margin-bottom: 20px;
background: linear-gradient(to right, #1874CD 70%, #0099ff );
background: linear-gradient(to right, #1874CD 70%, #0099ff);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.divider{
.divider {
height: 20px;
}
}

@ -1,181 +0,0 @@
<template>
<div class="page-container bg-white">
<div class="top-div">
<tn-tabs v-model="currentTabIndex" :bottom-shadow="false" :bar="false">
<TnTabsItem v-for="(item, index) in tabsData" :key="index" :title="item.text" />
</tn-tabs>
<tn-button width="80px" height="32px" :plain="true" text-color="#0099ff" @click="backToIndex">
<uni-icons type="arrow-left" size="18" color="#0099ff" style="margin-right: 5px;"></uni-icons>
</tn-button>
</div>
<div class="tools-div">
<div style="width: 300px;">
<tn-input placeholder="请输入关键词搜索" height="32px">
<template #prefix>
<uni-icons type="search" size="18" color="#ccc"></uni-icons>
</template>
</tn-input>
</div>
<div class="tools-btn">
<tn-button width="80px" height="32px" :plain="true" text-color="#0099ff" @click="shareToggle">
筛选<uni-icons type="down" size="12" color="#0099ff" style="margin-left: 5px;"></uni-icons>
</tn-button>
<div style="width: 2vw;"></div>
<tn-button width="80px" height="32px" text-color="#fff" @click="backToIndex">
<uni-icons type="search" size="18" color="#fff" style="margin-right: 5px;"></uni-icons>
</tn-button>
</div>
</div>
<div>
<uni-table ref="table" :loading="loading" border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th width="150" align="center">时间</uni-th>
<uni-th width="100" align="center">票号</uni-th>
<uni-th width="100" align="center">姓名</uni-th>
<uni-th width="220" align="center">身份证</uni-th>
<uni-th width="180" align="center">业务类型</uni-th>
<uni-th width="180" align="center">办理状态</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData" :key="index">
<uni-td>{{ item.date }}</uni-td>
<uni-td>
<view class="name">{{ item.name }}</view>
</uni-td>
<uni-td align="center">{{ item.address }}</uni-td>
<uni-td>
<view class="uni-group">
<button class="uni-button" size="mini" type="primary">修改</button>
<button class="uni-button" size="mini" type="warn">删除</button>
</view>
</uni-td>
</uni-tr>
</uni-table>
<div class="pagination-div">
<p><span class="page-span">{{ total }}</span>条数据每页显示<span class="page-span">{{ pageSize }}</span></p>
<view class="uni-pagination-box"><uni-pagination show-icon :page-size="pageSize" :current="pageCurrent"
:total="total" @change="change" /></view>
</div>
</div>
<uni-popup ref="share" type="share" safeArea backgroundColor="#fff">
<div class="popup-div">
<div class="fiter-items"></div>
<div class="filter-btn">
<tn-button width="80px" height="32px" :plain="true" text-color="#999" border-color="#999" @click="shareToggle">
重置
</tn-button>
<div style="width: 2vw;"></div>
<tn-button width="80px" height="32px" text-color="#fff" @click="backToIndex">
确定
</tn-button>
</div>
</div>
</uni-popup>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import TnTabs from '@/uni_modules/tuniaoui-vue3/components/tabs/src/tabs.vue'
import TnTabsItem from '@/uni_modules/tuniaoui-vue3/components/tabs/src/tabs-item.vue'
/*tabs变量*/
let currentTabIndex = ref(0)
let tabsData = [
{
text: '全部',
},
{
text: '待办理',
},
{
text: '办理中',
},
{
text: '已办理',
}
]
/*表格变量*/
let searchVal = ref('')
let tableData = []
//
let pageSize = ref(10)
//
let pageCurrent = ref(1)
//
let total = ref(0)
let loading = ref(false)
const share = ref(null)
//
const change = (e) => {
// $refs.table.clearSelection()
getData(e.current)
}
const getData = (pageCurrent, value = '') => {
}
const shareToggle = () => {
console.log(share.value?.$el || share.value)
share.value?.open()
}
const backToIndex = () => {
uni.navigateTo({
url: '/pages/index/index'
})
}
</script>
<style lang="scss">
.bg-white {
background-color: #fff;
}
.top-div {
display: flex;
justify-content: space-between;
padding: 6vh 20px 1vh 20px;
}
.tools-div {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 20px;
.tools-btn {
display: flex;
}
}
.pagination-div {
display: flex;
justify-content: space-between;
padding: 10px 20px;
.page-span {
display: inline;
color: #0099ff;
margin: 0 4px;
}
}
.uni-group {
display: flex;
align-items: center;
}
.popup-div{
.filter-btn{
height: 6vh;
padding: 10px 0;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
}
</style>
Loading…
Cancel
Save