master
xy 1 year ago
parent ccb7f05960
commit 42192dbeb5

@ -5,3 +5,4 @@ ENV='development'
VUE_APP_BASE_API=http://wuxiwuye.ali251.langye.net/ VUE_APP_BASE_API=http://wuxiwuye.ali251.langye.net/
VUE_APP_UPLOAD_API=http://wuxiwuye.ali251.langye.net/api/admin/upload-file VUE_APP_UPLOAD_API=http://wuxiwuye.ali251.langye.net/api/admin/upload-file
VUE_APP_PREVIEW=http://view.ali251.langye.net:8012/onlinePreview VUE_APP_PREVIEW=http://view.ali251.langye.net:8012/onlinePreview

@ -4,6 +4,10 @@ NODE_ENV = production
ENV = 'staging' ENV = 'staging'
# base api # base api
VUE_APP_BASE_API=http://wuxiwuye.ali251.langye.net/ #VUE_APP_BASE_API=http://wuxiwuye.ali251.langye.net/
VUE_APP_UPLOAD_API=http://wuxiwuye.ali251.langye.net/api/admin/upload-file #VUE_APP_UPLOAD_API=http://wuxiwuye.ali251.langye.net/api/admin/upload-file
VUE_APP_PREVIEW=http://view.ali251.langye.net:8012/onlinePreview #VUE_APP_PREVIEW=http://view.ali251.langye.net:8012/onlinePreview
# base api
VUE_APP_BASE_API=http://192.168.221.31:9001/
VUE_APP_UPLOAD_API=http://192.168.221.31:9001/api/admin/upload-file
VUE_APP_PREVIEW=http://192.168.221.31:8012/onlinePreview

@ -0,0 +1 @@
<svg t="1718693042653" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1516" width="200" height="200"><path d="M863.307169 1023.679132h-223.713088a63.918025 63.918025 0 0 1-63.918025-63.918026v-191.754075a63.918025 63.918025 0 0 0-127.83605 0v191.754075a63.918025 63.918025 0 0 1-63.918025 63.918026h-191.754076c-63.087091 6.008294-127.83605-67.721148-127.83605-111.856544V575.869447A65.164427 65.164427 0 0 1 19.84491 464.364453l108.660642-108.660643c0-1.022688-0.31959-2.013418-0.31959-3.195901v-223.713088a63.918025 63.918025 0 0 1 127.83605 0v99.072939L464.618487 19.207367a65.611853 65.611853 0 0 1 58.133444-18.088802 63.566476 63.566476 0 0 1 48.322027 18.440351l433.236375 433.236374a63.918025 63.918025 0 0 1-45.126126 109.267864v349.759434c0 44.135396-51.741641 111.856544-95.877038 111.856544m-341.961434-875.676945l-348.129524 348.353237h21.092948a62.831419 62.831419 0 0 0-2.26909 15.979506v319.590126a79.482064 79.482064 0 0 0 31.959013 63.918025h95.877038v-127.83605a65.164427 65.164427 0 0 1 1.757745-14.413515 96.036833 96.036833 0 0 1-1.629909-17.545498v-63.918025a95.877038 95.877038 0 0 1 95.877037-95.877037h191.754076a95.877038 95.877038 0 0 1 95.877037 95.877037v63.918025a96.036833 96.036833 0 0 1-1.757745 17.545498 65.164427 65.164427 0 0 1 1.757745 14.413515v127.83605h95.877038a79.482064 79.482064 0 0 0 31.959013-63.918025v-319.590126a62.831419 62.831419 0 0 0-2.26909-15.979506h38.350815z" fill="currentColor" p-id="1517"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -48,12 +48,14 @@ const actions = {
}, userInfo) { }, userInfo) {
const { const {
username, username,
password password,
code
} = userInfo } = userInfo
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
login({ login({
username: username.trim(), username: username.trim(),
password: password password: password,
code
}).then(response => { }).then(response => {
console.log(response) console.log(response)
const { const {

@ -84,7 +84,7 @@
v-for="item in /\/land/g.test($route.path) ? detail.id_asset_picture_files_land_id_relation : detail.id_asset_picture_files_house_id_relation" v-for="item in /\/land/g.test($route.path) ? detail.id_asset_picture_files_land_id_relation : detail.id_asset_picture_files_house_id_relation"
> >
<el-image <el-image
style="width: 100%; height: 100%" style="width: 100%; height: 100%;max-width: 200px;"
:src="item.url" :src="item.url"
:preview-src-list=" :preview-src-list="
(/\/land/g.test($route.path) ? detail.id_asset_picture_files_land_id_relation : detail.id_asset_picture_files_house_id_relation).map( (/\/land/g.test($route.path) ? detail.id_asset_picture_files_land_id_relation : detail.id_asset_picture_files_house_id_relation).map(
@ -108,7 +108,7 @@
<template v-if="histories && histories.length > 0"> <template v-if="histories && histories.length > 0">
<Timeline> <Timeline>
<TimelineItem v-for="(item, index) in histories" :key="item.id"> <TimelineItem v-for="(item, index) in histories" :key="item.id">
<el-descriptions :column="1" size="mini" border :title="$moment(item.fashengshijian).format('YYYY-MM-DD HH:mm')" :label-style="{ 'width': '86px' }"> <el-descriptions :column="1" size="mini" border :title="$moment(item.fashengshijian).format('YYYY-MM-DD')" :label-style="{ 'width': '86px' }">
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<i class="el-icon-coordinate"></i> <i class="el-icon-coordinate"></i>
@ -133,15 +133,20 @@
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
<i class="el-icon-picture-outline"></i> <i class="el-icon-picture-outline"></i>
相关图片 文件目录
</template> </template>
<div style="display: flex;flex-wrap: wrap;padding-top: 10px;"> <div style="display: flex;flex-wrap: wrap;padding-top: 10px;">
<div style="display: flex;flex-direction: column; align-items: center;margin-right: 16px;" v-for="(img,index) in item.id_his_tupian_files_asset_history_id_relation" :key="img.id"> <div style="display: flex;flex-direction: column; align-items: center;margin-right: 16px;cursor: pointer;"
<el-image v-for="(img,index) in item.id_his_tupian_files_asset_history_id_relation"
style="height: 160px" :key="img.id"
:src="img.url" @click="open(img.url)">
fit="contain" <!-- <el-image-->
></el-image> <!-- style="height: 160px"-->
<!-- :src="img.url"-->
<!-- fit="contain"-->
<!-- :preview-src-list="item.id_his_tupian_files_asset_history_id_relation.map(i => i.url)"-->
<!-- ></el-image>-->
<i class="el-icon-document" style="font-size: 24px;"></i>
<div style="color: #3477c6;padding: 10px 0;">{{ ++index }}. <span style="font-weight: 600;">{{ img.original_name }}</span></div> <div style="color: #3477c6;padding: 10px 0;">{{ ++index }}. <span style="font-weight: 600;">{{ img.original_name }}</span></div>
</div> </div>
</div> </div>
@ -269,6 +274,37 @@
<div style="position:fixed;right: 40px;bottom: 80px;background: #fff;border-radius: 100%;width: 40px;height: 40px;display: flex;align-items: center;justify-content: center;font-size: 20px;cursor: pointer;" @click="print"> <div style="position:fixed;right: 40px;bottom: 80px;background: #fff;border-radius: 100%;width: 40px;height: 40px;display: flex;align-items: center;justify-content: center;font-size: 20px;cursor: pointer;" @click="print">
<Icon type="md-print" /> <Icon type="md-print" />
</div> </div>
<div style="position:fixed;right: 40px;bottom: 30px;background: #fff;border-radius: 100%;width: 40px;height: 40px;display: flex;align-items: center;justify-content: center;font-size: 20px;cursor: pointer;" @click="isShowSearch = !isShowSearch">
<Icon type="md-search" />
</div>
<transition name="search-container">
<el-card v-show="isShowSearch" class="search-container">
<template #header>
<div style="display:flex;align-items: center;">
<p>搜索</p>
<i class="el-icon-close" style="margin-left: auto;" @click="isShowSearch = false"></i>
</div>
</template>
<template>
<div>
<Button size="small" type="success" ghost>资产</Button>
<Button size="small" type="info" ghost>文件</Button>
</div>
<el-input size="mini" style="margin-top: 4px;" placeholder="请输入名称" clearable>
<el-button type="primary" slot="append" icon="el-icon-search"></el-button>
</el-input>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</template>
</el-card>
</transition>
</div> </div>
</template> </template>
@ -284,6 +320,7 @@ export default {
name: "detail", name: "detail",
data() { data() {
return { return {
isShowSearch: false,
showModal: false, showModal: false,
codeUri: "", codeUri: "",
center: [120.283692, 31.614211], center: [120.283692, 31.614211],
@ -674,6 +711,42 @@ a:hover {
.el-image + .el-image { .el-image + .el-image {
margin-left: 6px; margin-left: 6px;
} }
.search-container-enter-active {
animation: slide-in-fwd-br 0.4s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}
.search-container-leave-active {
animation: slide-out-fwd-br 0.6s cubic-bezier(0.550, 0.085, 0.680, 0.530) both;
}
@keyframes slide-in-fwd-br {
0% {
transform: translateZ(-1400px) translateY(800px) translateX(1000px);
opacity: 0;
}
100% {
transform: translateZ(0) translateY(0) translateX(0);
opacity: 1;
}
}
@keyframes slide-out-fwd-br {
0% {
transform: translateZ(0) translateY(0) translateX(0);
opacity: 1;
}
100% {
transform: translateZ(600px) translateY(300px) translateX(400px);
opacity: 0;
}
}
.search-container {
min-width: 300px;
background: #fff;
position: fixed;
right: 100px;
bottom: 30px;
}
</style> </style>
<style lang="scss"> <style lang="scss">
.map-marker { .map-marker {

@ -38,7 +38,7 @@
<el-row :gutter="80" type="flex"> <el-row :gutter="80" type="flex">
<el-col :span="12"> <el-col :span="12">
<div class="contract__title"> <div class="contract__title">
<h3>通知公告</h3> <h3>系统通知</h3>
<div class="more" @click="$router.push('/notice')"> <div class="more" @click="$router.push('/notice')">
更多 更多

@ -11,13 +11,18 @@
<div class="header-time"> <div class="header-time">
<p>{{ time.format('YYYY年MM月DD日 HH:mm:ss') }}</p> <p>{{ time.format('YYYY年MM月DD日 HH:mm:ss') }}</p>
<p style="text-align: right">{{ time.format('dddd') }}</p> <p>{{ time.format('dddd') }}</p>
</div> </div>
<SvgIcon icon-class="home" style="color: #75f9e2;width: 45px;height: 45px;cursor: pointer;" @click.native="$router.back()"></SvgIcon>
</div> </div>
</template> </template>
<script> <script>
import SvgIcon from "@/components/SvgIcon"
export default { export default {
components: {
SvgIcon
},
data() { data() {
return { return {
time: this.$moment(), time: this.$moment(),
@ -52,7 +57,7 @@ export default {
font-weight: 600; font-weight: 600;
background: linear-gradient(to right, #1d413b, #75f9e2); background: linear-gradient(to right, #1d413b, #75f9e2);
padding: 16px 100px; padding: 16px 100px;
transform: skewX(-45deg) translateX(-40px); transform: skewX(-45deg) translateX(-80px);
position: relative; position: relative;
& > p { & > p {
@ -85,6 +90,8 @@ export default {
font-size: 22px; font-size: 22px;
padding: 0 20px; padding: 0 20px;
word-break: keep-all; word-break: keep-all;
white-space: nowrap;
text-align: right;
} }
} }
</style> </style>

@ -97,12 +97,8 @@
trigger: 'blur', trigger: 'blur',
message: '请输入验证码', message: '请输入验证码',
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
if (this.loginForm.username === 'admin') {
callback()
return
}
if (value.length !== 4) { if (value.length !== 4) {
callback(new Error('码输入错误')) callback(new Error('验证码输入错误'))
} else { } else {
callback() callback()
} }
@ -137,16 +133,11 @@
async sendSms () { async sendSms () {
if (this.isVer) return; if (this.isVer) return;
if (this.loginForm.username && this.loginForm.password) { if (this.loginForm.username) {
this.msgLoading = true; this.msgLoading = true;
try { try {
const { access_token } = (await login(this.loginForm))
const { mobile } = (await getInfo(access_token))
this.temp.mobile = mobile;
this.temp.token = access_token;
await sendSms({ await sendSms({
mobile, username: this.loginForm.username
token: access_token
}) })
this.isVer = true; this.isVer = true;
this.verTime = 60; this.verTime = 60;
@ -167,7 +158,7 @@
} }
} else { } else {
this.$message({ this.$message({
message: '请输入登录名和密码', message: '请输入登录名',
type: 'warning' type: 'warning'
}) })
} }
@ -187,13 +178,7 @@
async handleLogin() { async handleLogin() {
this.$refs.loginForm.validate(async(valid) => { this.$refs.loginForm.validate(async(valid) => {
if (valid) { if (valid) {
if (this.loginForm.username !== 'admin') {
await checkSms({
mobile: this.temp.mobile,
token: this.temp.token,
code: this.loginForm.code
})
}
this.loading = true this.loading = true
this.$store.dispatch('user/login', this.loginForm).then(() => { this.$store.dispatch('user/login', this.loginForm).then(() => {

Loading…
Cancel
Save