Compare commits
8 Commits
main
...
51751f6b5e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
51751f6b5e | ||
|
|
c1b051a185 | ||
| 1a5e285f09 | |||
| 911d1d8477 | |||
| e0261d4a37 | |||
| 50cb33ac43 | |||
| 261064bd23 | |||
| a1e8f3295e |
@@ -1,56 +0,0 @@
|
|||||||
name: AiDA WEB-Node.js Develop 分支构建部署123
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- dev_vite
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: "contains(github.event.head_commit.message, '[run build]')"
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [ 18.18.0 ]
|
|
||||||
|
|
||||||
env:
|
|
||||||
REMOTE_DEPLOY_PATH: /workspace/workspace_aida/DevelopVersion/develop-aida-web-front
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: 1.检出代码
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: 2.设置 Node.js 环境
|
|
||||||
uses: actions/setup-node@v6
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
- run: npm install
|
|
||||||
- run: npm run build:dev
|
|
||||||
- run: ls -l
|
|
||||||
|
|
||||||
- name: 3.同步文件到远程服务器
|
|
||||||
uses: appleboy/scp-action@v0.1.7
|
|
||||||
with:
|
|
||||||
host: ${{ secrets.SERVER_HOST }}
|
|
||||||
username: ${{ secrets.SERVER_USER }}
|
|
||||||
key: ${{ secrets.SSH_KEY }}
|
|
||||||
source: "./dist/*"
|
|
||||||
target: ${{ env.REMOTE_DEPLOY_PATH }}
|
|
||||||
ssh_options: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
|
||||||
strip_components: 0
|
|
||||||
|
|
||||||
- name: 4. 远程重载 Nginx 配置
|
|
||||||
uses: appleboy/ssh-action@v1.0.3
|
|
||||||
with:
|
|
||||||
host: ${{ secrets.SERVER_HOST }}
|
|
||||||
username: ${{ secrets.SERVER_USER }}
|
|
||||||
key: ${{ secrets.SSH_KEY }}
|
|
||||||
# 核心:执行 Nginx 重载命令
|
|
||||||
script: |
|
|
||||||
echo "尝试重载 Nginx 服务..."
|
|
||||||
# 💡 注意:执行此命令需要服务器用户具有 sudo 权限,并且配置了 NOPASSWD。
|
|
||||||
# 否则工作流可能会因为权限不足而失败。
|
|
||||||
sudo systemctl reload nginx
|
|
||||||
echo "Nginx 重载命令已发送。"
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
name: 手动触发 AiDA WEB-Node.js Develop 分支构建部署
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [ 18.18.0 ]
|
|
||||||
env:
|
|
||||||
REMOTE_DEPLOY_PATH: /workspace/workspace_aida/DevelopVersion/develop-aida-web-front
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: 1.检出代码
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: 2.设置 Node.js 环境
|
|
||||||
uses: actions/setup-node@v6
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
- run: npm install
|
|
||||||
- run: npm run build:dev
|
|
||||||
- run: ls -l
|
|
||||||
|
|
||||||
- name: 3.同步文件到远程服务器
|
|
||||||
uses: appleboy/scp-action@v0.1.7
|
|
||||||
with:
|
|
||||||
host: ${{ secrets.SERVER_HOST }}
|
|
||||||
username: ${{ secrets.SERVER_USER }}
|
|
||||||
key: ${{ secrets.SSH_KEY }}
|
|
||||||
source: "./dist/*"
|
|
||||||
target: ${{ env.REMOTE_DEPLOY_PATH }}
|
|
||||||
ssh_options: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
|
||||||
strip_components: 0
|
|
||||||
|
|
||||||
- name: 4. 远程重载 Nginx 配置
|
|
||||||
uses: appleboy/ssh-action@v1.0.3
|
|
||||||
with:
|
|
||||||
host: ${{ secrets.SERVER_HOST }}
|
|
||||||
username: ${{ secrets.SERVER_USER }}
|
|
||||||
key: ${{ secrets.SSH_KEY }}
|
|
||||||
# 核心:执行 Nginx 重载命令
|
|
||||||
script: |
|
|
||||||
echo "尝试重载 Nginx 服务..."
|
|
||||||
# 💡 注意:执行此命令需要服务器用户具有 sudo 权限,并且配置了 NOPASSWD。
|
|
||||||
# 否则工作流可能会因为权限不足而失败。
|
|
||||||
sudo systemctl reload nginx
|
|
||||||
echo "Nginx 重载命令已发送。"
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
name: AiDA WEB-Node.js StableVersion 分支构建部署
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [ 18.18.0 ]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: 1.检出代码
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: StableVersion
|
|
||||||
|
|
||||||
- name: 2.打印当前分支信息
|
|
||||||
run: |
|
|
||||||
echo "Current branch being deployed is: $(git rev-parse --abbrev-ref HEAD)"
|
|
||||||
echo "The code is from the 'main' branch, as specified in 'actions/checkout'."
|
|
||||||
|
|
||||||
- name: 3.设置 Node.js 环境 ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v6
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
- run: npm install
|
|
||||||
- run: npm run build
|
|
||||||
- run: ls -l
|
|
||||||
|
|
||||||
- name: 3.5. 手动安装 AWS CLI v2 # 新增步骤:确保 aws 命令可用
|
|
||||||
run: |
|
|
||||||
echo "安装 AWS CLI V2..."
|
|
||||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
|
||||||
unzip awscliv2.zip
|
|
||||||
sudo ./aws/install --update
|
|
||||||
aws --version
|
|
||||||
echo "AWS CLI V2 安装完成。"
|
|
||||||
|
|
||||||
- name: 4.配置 AWS 凭证
|
|
||||||
uses: aws-actions/configure-aws-credentials@main
|
|
||||||
with:
|
|
||||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
aws-region: 'ap-east-1'
|
|
||||||
|
|
||||||
- name: 5.同步 dist 目录到 S3
|
|
||||||
run: |
|
|
||||||
aws s3 sync dist/* s3://${{ secrets.S3_BUCKET_NAME }}/ --acl public-read
|
|
||||||
|
|
||||||
- name: 6.部署完成
|
|
||||||
run: echo "构建和部署到 S3 任务完成。"
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
name: AiDA WEB-Node.js StableVersion 分支构建部署
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
# cron为UTC时区,构建时间=部署时间-8小时 {*分 (-8)时 *日 *月 *周} ---
|
|
||||||
# 示例: 1月1日22点22分触发构建 cron写作 - '22 14 1 1 *'
|
|
||||||
- cron: '22 14 1 1 *'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [ 18.18.0 ]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: 1.检出代码
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: StableVersion
|
|
||||||
|
|
||||||
- name: 2.打印当前分支信息
|
|
||||||
run: |
|
|
||||||
echo "Current branch being deployed is: $(git rev-parse --abbrev-ref HEAD)"
|
|
||||||
echo "The code is from the 'main' branch, as specified in 'actions/checkout'."
|
|
||||||
|
|
||||||
- name: 3.设置 Node.js 环境 ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v6
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
- run: npm install
|
|
||||||
- run: npm run build
|
|
||||||
- run: ls -l
|
|
||||||
|
|
||||||
- name: 3.5. 手动安装 AWS CLI v2 # 新增步骤:确保 aws 命令可用
|
|
||||||
run: |
|
|
||||||
echo "安装 AWS CLI V2..."
|
|
||||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
|
||||||
unzip awscliv2.zip
|
|
||||||
sudo ./aws/install --update
|
|
||||||
aws --version
|
|
||||||
echo "AWS CLI V2 安装完成。"
|
|
||||||
|
|
||||||
- name: 4.配置 AWS 凭证
|
|
||||||
uses: aws-actions/configure-aws-credentials@main
|
|
||||||
with:
|
|
||||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
aws-region: 'ap-east-1'
|
|
||||||
|
|
||||||
- name: 5.同步 dist 目录到 S3
|
|
||||||
run: |
|
|
||||||
aws s3 sync dist/* s3://${{ secrets.S3_BUCKET_NAME }}/ --acl public-read
|
|
||||||
|
|
||||||
- name: 6.部署完成
|
|
||||||
run: echo "构建和部署到 S3 任务完成。"
|
|
||||||
@@ -1250,10 +1250,14 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
background: #000 !important;
|
background: #000 !important;
|
||||||
border-color: #000 !important;
|
border-color: #000 !important;
|
||||||
}
|
}
|
||||||
|
.ant-spin .ant-spin-dot {
|
||||||
|
width: 1.5em;
|
||||||
|
height: 1.5em;
|
||||||
|
}
|
||||||
.ant-spin-dot-item {
|
.ant-spin-dot-item {
|
||||||
background-color: #000000 !important;
|
background-color: #000000 !important;
|
||||||
width: 9px !important;
|
width: 0.9em !important;
|
||||||
height: 9px !important;
|
height: 0.9em !important;
|
||||||
}
|
}
|
||||||
.ant-spin {
|
.ant-spin {
|
||||||
color: #000;
|
color: #000;
|
||||||
|
|||||||
@@ -1378,10 +1378,14 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//loding样式
|
//loding样式
|
||||||
|
.ant-spin .ant-spin-dot{
|
||||||
|
width: 1.5em;
|
||||||
|
height: 1.5em;
|
||||||
|
}
|
||||||
.ant-spin-dot-item{
|
.ant-spin-dot-item{
|
||||||
background-color: #000000 !important;
|
background-color: #000000 !important;
|
||||||
width: 9px !important;
|
width: .9em !important;
|
||||||
height: 9px !important;
|
height: .9em !important;
|
||||||
}
|
}
|
||||||
.ant-spin{
|
.ant-spin{
|
||||||
color: #000;
|
color: #000;
|
||||||
|
|||||||
@@ -34,8 +34,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layout_centent" :class="{active:flex_direction}" id="layoutCentent">
|
<div class="layout_centent" :class="{active:flex_direction}" id="layoutCentent">
|
||||||
<div v-for="item,index in layoutList" :key="item" :class="moodbClassName[index]" class="modal_imgItem" v-layout="item" @mousedown="setpitch(item,index)" @touchstart="setpitch(item,index)" ref="content" >
|
<div v-for="item,index in layoutList" :key="item" :class="moodbClassName[index]" class="modal_imgItem" v-layout="item" @mousedown="setpitch(item,index)" @touchstart="setpitch(item,index)" ref="content" :style="{'background-image':`url(${item.imgUrl})`,'transform':`scale(${item.zoom?item.zoom:1}) rotateZ(${item.angle?item.angle:0}deg)`}">
|
||||||
<img crossOrigin="anonymous" :src="item.imgUrl" :style="{'transform':`translate(-50%, -50%) scale(${item.zoom?item.zoom:1}) rotateZ(${item.angle?item.angle:0}deg)`}" draggable="false" :class="moodbClassName[index]" v-modelImg>
|
<!-- <img crossOrigin="anonymous" :src="item.imgUrl" :style="{'transform':`translate(-50%, -50%) scale(${item.zoom?item.zoom:1}) rotateZ(${item.angle?item.angle:0}deg)`}" draggable="false" :class="moodbClassName[index]" v-modelImg> -->
|
||||||
<ul v-show="item.setPitch" class="layout_btn" >
|
<ul v-show="item.setPitch" class="layout_btn" >
|
||||||
<li class="layout_btn_top" v-compile.stop="'top'"></li>
|
<li class="layout_btn_top" v-compile.stop="'top'"></li>
|
||||||
<li class="layout_btn_bottom" v-compile.stop="'bottom'"></li>
|
<li class="layout_btn_bottom" v-compile.stop="'bottom'"></li>
|
||||||
@@ -736,6 +736,7 @@ export default defineComponent({
|
|||||||
setmoodb(item:any){
|
setmoodb(item:any){
|
||||||
this.moodbClassName = item
|
this.moodbClassName = item
|
||||||
this.$emit('setmoodbClass',this.moodbClassName)
|
this.$emit('setmoodbClass',this.moodbClassName)
|
||||||
|
this.styleObj.class = this.moodbClassName
|
||||||
if(this.content){
|
if(this.content){
|
||||||
for (item of (this.content as any)) {
|
for (item of (this.content as any)) {
|
||||||
item.classList.remove('active')
|
item.classList.remove('active')
|
||||||
@@ -772,7 +773,7 @@ export default defineComponent({
|
|||||||
initDomStyle(){
|
initDomStyle(){
|
||||||
nextTick(()=>{
|
nextTick(()=>{
|
||||||
this.content.forEach((item:any,index:any) => {
|
this.content.forEach((item:any,index:any) => {
|
||||||
if(this.styleObj.domStyle[index]){
|
if(this.styleObj.domStyle[index]?.left){
|
||||||
item.classList.add('active')
|
item.classList.add('active')
|
||||||
this.initStyle(item,this.styleObj.domStyle[index])
|
this.initStyle(item,this.styleObj.domStyle[index])
|
||||||
}
|
}
|
||||||
@@ -794,7 +795,7 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
initStyle(dom:any,style:any){
|
initStyle(dom:any,style:any){
|
||||||
if(!style)return
|
if(!style || !dom)return
|
||||||
for (const [property, value] of Object.entries(style)) {
|
for (const [property, value] of Object.entries(style)) {
|
||||||
|
|
||||||
dom.style.setProperty(property, value);
|
dom.style.setProperty(property, value);
|
||||||
@@ -806,7 +807,7 @@ export default defineComponent({
|
|||||||
this.styleObj.domStyle.push(this.setStyle(item.style))
|
this.styleObj.domStyle.push(this.setStyle(item.style))
|
||||||
this.domObj.dom.forEach((domName:any,index:any) => {
|
this.domObj.dom.forEach((domName:any,index:any) => {
|
||||||
let style = this.domObj.domStyle[index]
|
let style = this.domObj.domStyle[index]
|
||||||
let dom = item.querySelector(domName)
|
let dom = item.querySelector(domName) || item
|
||||||
this.styleObj[style].push(this.setStyle(dom.style))
|
this.styleObj[style].push(this.setStyle(dom.style))
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
@@ -840,7 +841,6 @@ export default defineComponent({
|
|||||||
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
||||||
Https.axiosPost(Https.httpUrls.elementUpload,param,config)
|
Https.axiosPost(Https.httpUrls.elementUpload,param,config)
|
||||||
.then((rv: any) => {
|
.then((rv: any) => {
|
||||||
// console.log(rv);
|
|
||||||
rv.imgUrl = rv.url
|
rv.imgUrl = rv.url
|
||||||
this.layout = false
|
this.layout = false
|
||||||
this.loadingShow = false
|
this.loadingShow = false
|
||||||
@@ -1062,27 +1062,12 @@ export default defineComponent({
|
|||||||
// height: 100%;
|
// height: 100%;
|
||||||
// }
|
// }
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: cover;
|
||||||
&.active{
|
&.active{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
img{
|
|
||||||
// object-fit: cover;
|
|
||||||
// width: 100%;
|
|
||||||
// height: 100%;
|
|
||||||
pointer-events: none;
|
|
||||||
float: left;
|
|
||||||
user-select:none;
|
|
||||||
-webkit-user-drag: none;
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%,-50%) scale(1);
|
|
||||||
}
|
|
||||||
::selection {
|
|
||||||
// background: rgba(0,0,0,0);
|
|
||||||
// background: yellow;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.wh1{
|
.wh1{
|
||||||
|
|||||||
@@ -132,8 +132,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal_img_max">
|
<div class="modal_img_max">
|
||||||
<div v-if="!modalImg[0]?.id" class="modal_img" id="modal_img" :class="{active:flex_direction}">
|
<div v-if="!modalImg[0]?.id" class="modal_img" id="modal_img" :class="{active:flex_direction}">
|
||||||
<div v-for="item,index in layoutList" :class="[moodb_className[index]]" class="modal_imgItem">
|
<!-- <div class="modal_img" id="modal_img" :class="{active:flex_direction}"> -->
|
||||||
<img :src="item.imgUrl" v-modelImg>
|
<div v-for="item,index in layoutList" :class="[moodb_className[index]]" :style="{'background-image':`url(${item.imgUrl})`}" class="modal_imgItem">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="modal_img">
|
<div v-else class="modal_img">
|
||||||
@@ -244,30 +244,6 @@ export default defineComponent({
|
|||||||
this.token = getCookie("token") || "";
|
this.token = getCookie("token") || "";
|
||||||
this.uploadUrl = getUploadUrl();
|
this.uploadUrl = getUploadUrl();
|
||||||
},
|
},
|
||||||
directives:{
|
|
||||||
modelImg:{
|
|
||||||
mounted(el) {
|
|
||||||
let parentNode = el.parentNode
|
|
||||||
if(parentNode.offsetHeight >= parentNode.offsetWidth){
|
|
||||||
el.style.height = 100+'%'
|
|
||||||
el.style.width = 'auto'
|
|
||||||
}else{
|
|
||||||
el.style.width = 100+'%'
|
|
||||||
el.style.height = 'auto'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
updated (el) {
|
|
||||||
let parentNode = el.parentNode
|
|
||||||
if(parentNode.offsetHeight >= parentNode.offsetWidth){
|
|
||||||
el.style.height = 100+'%'
|
|
||||||
el.style.width = 'auto'
|
|
||||||
}else{
|
|
||||||
el.style.width = 100+'%'
|
|
||||||
el.style.height = 'auto'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
open(num: Number) {
|
open(num: Number) {
|
||||||
this.openClick = num;
|
this.openClick = num;
|
||||||
@@ -445,7 +421,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.edieShow = true
|
this.edieShow = true
|
||||||
if(this.moodb_[arr.length-1].length == 2){
|
if(this.moodb_[arr.length-1].length == 1){
|
||||||
this.moodb_className = this.moodb_[arr.length-1][0]
|
this.moodb_className = this.moodb_[arr.length-1][0]
|
||||||
}else{
|
}else{
|
||||||
this.moodb_className = this.moodb_[arr.length-1][random]
|
this.moodb_className = this.moodb_[arr.length-1][random]
|
||||||
@@ -628,6 +604,7 @@ export default defineComponent({
|
|||||||
height: calc(5rem*1.2);
|
height: calc(5rem*1.2);
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
&.modal_img::-webkit-scrollbar {
|
&.modal_img::-webkit-scrollbar {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
@@ -706,15 +683,9 @@ export default defineComponent({
|
|||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
img{
|
background-repeat: no-repeat;
|
||||||
position: absolute;
|
background-position: center;
|
||||||
top: 50%;
|
background-size: cover;
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%,-50%);
|
|
||||||
// float: left;
|
|
||||||
// user-select:none;
|
|
||||||
// -webkit-user-drag: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.wh1{
|
.wh1{
|
||||||
width: 23%;
|
width: 23%;
|
||||||
|
|||||||
Reference in New Issue
Block a user