合并版本v0.8.4.3
|
@ -154,7 +154,7 @@
|
||||||
>详情</el-button
|
>详情</el-button
|
||||||
>
|
>
|
||||||
<el-button type="text" size="small" @click="showDocument(scope.row)"
|
<el-button type="text" size="small" @click="showDocument(scope.row)"
|
||||||
>开发文档</el-button
|
>技术文档</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
|
@ -762,10 +762,14 @@ export default {
|
||||||
this.notFilled.push('部门联系人电话')
|
this.notFilled.push('部门联系人电话')
|
||||||
}
|
}
|
||||||
if (this.radio === '智能算法' && !this.submitFrom.apiUrl) {
|
if (this.radio === '智能算法' && !this.submitFrom.apiUrl) {
|
||||||
this.notFilled.push('服务接口')
|
if ((this.submitFrom.infoList.filter(val => val.attrType === '使用方式')[0].attrValue === '调用接口')) {
|
||||||
|
this.notFilled.push('服务接口')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this.radio === '智能算法' && !this.submitFrom.apiMethodType) {
|
if (this.radio === '智能算法' && !this.submitFrom.apiMethodType) {
|
||||||
this.notFilled.push('接口请求方式')
|
if ((this.submitFrom.infoList.filter(val => val.attrType === '使用方式')[0].attrValue === '调用接口')) {
|
||||||
|
this.notFilled.push('接口请求方式')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this.radio === '智能算法' && (!this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0].attrValue)) {
|
if (this.radio === '智能算法' && (!this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0].attrValue)) {
|
||||||
this.notFilled.push('算法类别')
|
this.notFilled.push('算法类别')
|
||||||
|
|
|
@ -271,8 +271,7 @@
|
||||||
v-if="
|
v-if="
|
||||||
item.attrType != '应用领域' &&
|
item.attrType != '应用领域' &&
|
||||||
item.attrType != '应用类型' &&
|
item.attrType != '应用类型' &&
|
||||||
item.attrType != '发布端' &&
|
item.attrType != '发布端'
|
||||||
item.attrType != '应用状态'
|
|
||||||
"
|
"
|
||||||
></el-input>
|
></el-input>
|
||||||
<el-select
|
<el-select
|
||||||
|
@ -368,30 +367,30 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import debounce from "lodash/debounce";
|
import debounce from 'lodash/debounce'
|
||||||
import dictionaries from "@/utils/dictionaries";
|
import dictionaries from '@/utils/dictionaries'
|
||||||
import { mapState } from "vuex";
|
import { mapState } from 'vuex'
|
||||||
import { getIconList } from "@/utils";
|
import { getIconList } from '@/utils'
|
||||||
import Cookies from "js-cookie";
|
import Cookies from 'js-cookie'
|
||||||
import upload from "./upload.vue";
|
import upload from './upload.vue'
|
||||||
import bus from "@/views/bus.js";
|
import bus from '@/views/bus.js'
|
||||||
import qs from "qs";
|
import qs from 'qs'
|
||||||
import Vue from "vue";
|
import Vue from 'vue'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
upload,
|
upload
|
||||||
},
|
},
|
||||||
data() {
|
data () {
|
||||||
return {
|
return {
|
||||||
checkList: [],
|
checkList: [],
|
||||||
dialogVisibleImg: false,
|
dialogVisibleImg: false,
|
||||||
previewImg: "", // 预览图片
|
previewImg: '', // 预览图片
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
fileUploadUrl: window.SITE_CONFIG.apiURL + "/upload",
|
fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload',
|
||||||
uploadUrl:
|
uploadUrl:
|
||||||
window.SITE_CONFIG.apiURL +
|
window.SITE_CONFIG.apiURL +
|
||||||
"/sys/oss/upload?token=" +
|
'/sys/oss/upload?token=' +
|
||||||
Cookies.get("ucsToken"),
|
Cookies.get('ucsToken'),
|
||||||
companyArr: dictionaries.companyArr,
|
companyArr: dictionaries.companyArr,
|
||||||
visible: false,
|
visible: false,
|
||||||
sceneArr: dictionaries.sceneArr,
|
sceneArr: dictionaries.sceneArr,
|
||||||
|
@ -403,602 +402,602 @@ export default {
|
||||||
menuListVisible: false,
|
menuListVisible: false,
|
||||||
UpdateState: false,
|
UpdateState: false,
|
||||||
dataForm: {
|
dataForm: {
|
||||||
id: "",
|
id: '',
|
||||||
deptId: "",
|
deptId: '',
|
||||||
deptContacts: "",
|
deptContacts: '',
|
||||||
deptPhone: "",
|
deptPhone: '',
|
||||||
dataVolume: "",
|
dataVolume: '',
|
||||||
shareCondition: "",
|
shareCondition: '',
|
||||||
shareType: "",
|
shareType: '',
|
||||||
shareMode: "",
|
shareMode: '',
|
||||||
delFlag: 0,
|
delFlag: 0,
|
||||||
description: "",
|
description: '',
|
||||||
downloads: 0,
|
downloads: 0,
|
||||||
image: "",
|
image: '',
|
||||||
showList: [],
|
showList: [],
|
||||||
infoList: [],
|
infoList: [],
|
||||||
link: "",
|
link: '',
|
||||||
name: "",
|
name: '',
|
||||||
note1: "",
|
note1: '',
|
||||||
note2: "",
|
note2: '',
|
||||||
note3: "",
|
note3: '',
|
||||||
note4: "",
|
note4: '',
|
||||||
note5: "",
|
note5: '',
|
||||||
score: "",
|
score: '',
|
||||||
type: "应用资源",
|
type: '应用资源',
|
||||||
apiMethodType: "",
|
apiMethodType: '',
|
||||||
apiUrl: "",
|
apiUrl: '',
|
||||||
visits: 0,
|
visits: 0
|
||||||
},
|
},
|
||||||
deptId: "",
|
deptId: '',
|
||||||
fangwendizhi: "",
|
fangwendizhi: '',
|
||||||
mingzi: "",
|
mingzi: '',
|
||||||
dataFormUpdate: {},
|
dataFormUpdate: {},
|
||||||
dataFormShowDetails: {},
|
dataFormShowDetails: {},
|
||||||
infoList2: [],
|
infoList2: [],
|
||||||
infoList3: [],
|
infoList3: [],
|
||||||
typeOptions: [
|
typeOptions: [
|
||||||
{ value: "有条件共享", label: "有条件共享" },
|
{ value: '有条件共享', label: '有条件共享' },
|
||||||
{ value: "无条件共享", label: "无条件共享" },
|
{ value: '无条件共享', label: '无条件共享' }
|
||||||
],
|
],
|
||||||
conditionOptions: [
|
conditionOptions: [
|
||||||
{ value: "申请", label: "申请" },
|
{ value: '申请', label: '申请' },
|
||||||
{ value: "免批申请", label: "免批申请" },
|
{ value: '免批申请', label: '免批申请' }
|
||||||
],
|
],
|
||||||
|
|
||||||
rules: {
|
rules: {
|
||||||
name: [
|
name: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入应用名称",
|
message: '请输入应用名称',
|
||||||
trigger: "change",
|
trigger: 'change'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
description: [
|
description: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入应用描述",
|
message: '请输入应用描述',
|
||||||
trigger: "change",
|
trigger: 'change'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
deptContacts: [
|
deptContacts: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入部门联系人",
|
message: '请输入部门联系人',
|
||||||
trigger: "change",
|
trigger: 'change'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
deptPhone: [
|
deptPhone: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入部门联系人电话",
|
message: '请输入部门联系人电话',
|
||||||
trigger: "change",
|
trigger: 'change'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
shareCondition: [
|
shareCondition: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请选择共享条件",
|
message: '请选择共享条件',
|
||||||
trigger: "change",
|
trigger: 'change'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
shareType: [
|
shareType: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请选择请输入共享类型",
|
message: '请选择请输入共享类型',
|
||||||
trigger: "change",
|
trigger: 'change'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
shareMode: [
|
shareMode: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入共享方式",
|
message: '请输入共享方式',
|
||||||
trigger: "change",
|
trigger: 'change'
|
||||||
},
|
}
|
||||||
],
|
]
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
disabled: {
|
disabled: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["catalogueTree"]),
|
...mapState(['catalogueTree']),
|
||||||
...mapState(["departmentSelects"]),
|
...mapState(['departmentSelects']),
|
||||||
dataRule() {
|
dataRule () {
|
||||||
return {
|
return {
|
||||||
name: [
|
name: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
version: [
|
version: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
visitUrl: [
|
visitUrl: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
type: [
|
type: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
shareType: [
|
shareType: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
shareForm: [
|
shareForm: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
field: [
|
field: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
scene: [
|
scene: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
deptId: [
|
deptId: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
content: [
|
content: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
rank: [
|
rank: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
useInfo: [
|
useInfo: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
remarks: [
|
remarks: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
isUp: [
|
isUp: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("validate.required"),
|
message: this.$t('validate.required'),
|
||||||
trigger: "blur",
|
trigger: 'blur'
|
||||||
},
|
}
|
||||||
],
|
]
|
||||||
};
|
}
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 上传图片
|
// 上传图片
|
||||||
handleAvatarSuccess(res, file) {
|
handleAvatarSuccess (res, file) {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error("上传图片失败");
|
return this.$message.error('上传图片失败')
|
||||||
}
|
}
|
||||||
debugger;
|
debugger
|
||||||
this.dataForm.infoList.map((item, index) => {
|
this.dataForm.infoList.map((item, index) => {
|
||||||
if (item.attrType == "应用图片") {
|
if (item.attrType == '应用图片') {
|
||||||
if (!this.dataForm.infoList[index].attrValue) {
|
if (!this.dataForm.infoList[index].attrValue) {
|
||||||
this.dataForm.infoList[index].attrValue = res.data;
|
this.dataForm.infoList[index].attrValue = res.data
|
||||||
} else {
|
} else {
|
||||||
this.dataForm.infoList[index].attrValue += ";" + res.data;
|
this.dataForm.infoList[index].attrValue += ';' + res.data
|
||||||
}
|
}
|
||||||
console.log("上传图片", this.dataForm.infoList[index]);
|
console.log('上传图片', this.dataForm.infoList[index])
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
// this.imageUrl = URL.createObjectURL(file.raw);
|
// this.imageUrl = URL.createObjectURL(file.raw);
|
||||||
},
|
},
|
||||||
handleAvatarSuccessone(res, file) {
|
handleAvatarSuccessone (res, file) {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error("上传图片失败");
|
return this.$message.error('上传图片失败')
|
||||||
}
|
}
|
||||||
debugger;
|
debugger
|
||||||
this.dataForm.infoList.map((item, index) => {
|
this.dataForm.infoList.map((item, index) => {
|
||||||
if (item.attrType == "子系统一图片") {
|
if (item.attrType == '子系统一图片') {
|
||||||
if (!this.dataForm.infoList[index].attrValue) {
|
if (!this.dataForm.infoList[index].attrValue) {
|
||||||
this.dataForm.infoList[index].attrValue = res.data;
|
this.dataForm.infoList[index].attrValue = res.data
|
||||||
} else {
|
} else {
|
||||||
this.dataForm.infoList[index].attrValue = "";
|
this.dataForm.infoList[index].attrValue = ''
|
||||||
this.dataForm.infoList[index].attrValue = res.data;
|
this.dataForm.infoList[index].attrValue = res.data
|
||||||
}
|
}
|
||||||
console.log("上传图片", this.dataForm.infoList[index]);
|
console.log('上传图片', this.dataForm.infoList[index])
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
// this.imageUrl = URL.createObjectURL(file.raw);
|
// this.imageUrl = URL.createObjectURL(file.raw);
|
||||||
},
|
},
|
||||||
handleAvatarSuccesstwo(res, file) {
|
handleAvatarSuccesstwo (res, file) {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error("上传图片失败");
|
return this.$message.error('上传图片失败')
|
||||||
}
|
}
|
||||||
debugger;
|
debugger
|
||||||
this.dataForm.infoList.map((item, index) => {
|
this.dataForm.infoList.map((item, index) => {
|
||||||
if (item.attrType == "子系统二图片") {
|
if (item.attrType == '子系统二图片') {
|
||||||
if (!this.dataForm.infoList[index].attrValue) {
|
if (!this.dataForm.infoList[index].attrValue) {
|
||||||
this.dataForm.infoList[index].attrValue = res.data;
|
this.dataForm.infoList[index].attrValue = res.data
|
||||||
} else {
|
} else {
|
||||||
this.dataForm.infoList[index].attrValue = "";
|
this.dataForm.infoList[index].attrValue = ''
|
||||||
this.dataForm.infoList[index].attrValue = res.data;
|
this.dataForm.infoList[index].attrValue = res.data
|
||||||
}
|
}
|
||||||
console.log("上传图片", this.dataForm.infoList[index]);
|
console.log('上传图片', this.dataForm.infoList[index])
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
// this.imageUrl = URL.createObjectURL(file.raw);
|
// this.imageUrl = URL.createObjectURL(file.raw);
|
||||||
},
|
},
|
||||||
handleAvatarSuccessthree(res, file) {
|
handleAvatarSuccessthree (res, file) {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error("上传图片失败");
|
return this.$message.error('上传图片失败')
|
||||||
}
|
}
|
||||||
debugger;
|
debugger
|
||||||
this.dataForm.infoList.map((item, index) => {
|
this.dataForm.infoList.map((item, index) => {
|
||||||
if (item.attrType == "子系统三图片") {
|
if (item.attrType == '子系统三图片') {
|
||||||
if (!this.dataForm.infoList[index].attrValue) {
|
if (!this.dataForm.infoList[index].attrValue) {
|
||||||
this.dataForm.infoList[index].attrValue = res.data;
|
this.dataForm.infoList[index].attrValue = res.data
|
||||||
} else {
|
} else {
|
||||||
this.dataForm.infoList[index].attrValue = "";
|
this.dataForm.infoList[index].attrValue = ''
|
||||||
this.dataForm.infoList[index].attrValue = res.data;
|
this.dataForm.infoList[index].attrValue = res.data
|
||||||
}
|
}
|
||||||
console.log("上传图片", this.dataForm.infoList[index]);
|
console.log('上传图片', this.dataForm.infoList[index])
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
// this.imageUrl = URL.createObjectURL(file.raw);
|
// this.imageUrl = URL.createObjectURL(file.raw);
|
||||||
},
|
},
|
||||||
beforeAvatarUpload(file) {
|
beforeAvatarUpload (file) {
|
||||||
const isImage =
|
const isImage =
|
||||||
file.type === "image/jpeg" ||
|
file.type === 'image/jpeg' ||
|
||||||
file.type === "image/jpg" ||
|
file.type === 'image/jpg' ||
|
||||||
file.type === "image/png";
|
file.type === 'image/png'
|
||||||
const isLt2M = file.size / 1024 / 1024 < 9999;
|
const isLt2M = file.size / 1024 / 1024 < 9999
|
||||||
|
|
||||||
if (!isImage) {
|
if (!isImage) {
|
||||||
this.$message.error("上传头像图片只能是 JPG 格式!");
|
this.$message.error('上传头像图片只能是 JPG 格式!')
|
||||||
}
|
}
|
||||||
if (!isLt2M) {
|
if (!isLt2M) {
|
||||||
this.$message.error("上传头像图片大小不能超过 2MB!");
|
this.$message.error('上传头像图片大小不能超过 2MB!')
|
||||||
}
|
}
|
||||||
return isImage && isLt2M;
|
return isImage && isLt2M
|
||||||
},
|
},
|
||||||
addUploadRemoveFile(file, fileList) {
|
addUploadRemoveFile (file, fileList) {
|
||||||
this.$refs.addUpload.clearFiles();
|
this.$refs.addUpload.clearFiles()
|
||||||
this.addDataFrom.imageUrl = "";
|
this.addDataFrom.imageUrl = ''
|
||||||
},
|
},
|
||||||
showView(file) {
|
showView (file) {
|
||||||
this.previewImg = file.url;
|
this.previewImg = file.url
|
||||||
this.dialogVisibleImg = true;
|
this.dialogVisibleImg = true
|
||||||
},
|
},
|
||||||
// 获取当前管理员信息
|
// 获取当前管理员信息
|
||||||
getUserInfo() {
|
getUserInfo () {
|
||||||
this.$http.get("/sys/user/info").then(({ data: res }) => {
|
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
||||||
this.dataForm.deptId = res.data.deptId;
|
this.dataForm.deptId = res.data.deptId
|
||||||
this.deptId = res.data.deptId;
|
this.deptId = res.data.deptId
|
||||||
console.log("depid", this.dataForm);
|
console.log('depid', this.dataForm)
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
guanbi() {
|
guanbi () {
|
||||||
this.dataForm = {
|
this.dataForm = {
|
||||||
id: "",
|
id: '',
|
||||||
deptId: "",
|
deptId: '',
|
||||||
deptContacts: "",
|
deptContacts: '',
|
||||||
deptPhone: "",
|
deptPhone: '',
|
||||||
dataVolume: "",
|
dataVolume: '',
|
||||||
shareCondition: "",
|
shareCondition: '',
|
||||||
shareType: "",
|
shareType: '',
|
||||||
shareMode: "",
|
shareMode: '',
|
||||||
delFlag: 0,
|
delFlag: 0,
|
||||||
description: "",
|
description: '',
|
||||||
downloads: 0,
|
downloads: 0,
|
||||||
image: "",
|
image: '',
|
||||||
showList: [],
|
showList: [],
|
||||||
infoList: [],
|
infoList: [],
|
||||||
link: "",
|
link: '',
|
||||||
name: "",
|
name: '',
|
||||||
note1: "",
|
note1: '',
|
||||||
note2: "",
|
note2: '',
|
||||||
note3: "",
|
note3: '',
|
||||||
note4: "",
|
note4: '',
|
||||||
note5: "",
|
note5: '',
|
||||||
score: "",
|
score: '',
|
||||||
type: "应用资源",
|
type: '应用资源',
|
||||||
apiMethodType: "",
|
apiMethodType: '',
|
||||||
apiUrl: "",
|
apiUrl: '',
|
||||||
visits: 0,
|
visits: 0
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
handleRemove(file, fileList) {
|
handleRemove (file, fileList) {
|
||||||
console.log(file, fileList);
|
console.log(file, fileList)
|
||||||
},
|
},
|
||||||
handlePictureCardPreview(file) {
|
handlePictureCardPreview (file) {
|
||||||
this.dialogImageUrl = file.url;
|
this.dialogImageUrl = file.url
|
||||||
this.dialogVisible = true;
|
this.dialogVisible = true
|
||||||
},
|
},
|
||||||
// 上传图片之前
|
// 上传图片之前
|
||||||
uploadBeforeUploadHandle(file) {
|
uploadBeforeUploadHandle (file) {
|
||||||
if (
|
if (
|
||||||
file.type !== "image/jpg" &&
|
file.type !== 'image/jpg' &&
|
||||||
file.type !== "image/jpeg" &&
|
file.type !== 'image/jpeg' &&
|
||||||
file.type !== "image/png" &&
|
file.type !== 'image/png' &&
|
||||||
file.type !== "image/gif"
|
file.type !== 'image/gif'
|
||||||
) {
|
) {
|
||||||
this.$message.error("只支持jpg、png、gif格式的图片!");
|
this.$message.error('只支持jpg、png、gif格式的图片!')
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
imgUploadSuccess(res, file, fileList) {
|
imgUploadSuccess (res, file, fileList) {
|
||||||
console.log("zzzzzzz", res, file, fileList);
|
console.log('zzzzzzz', res, file, fileList)
|
||||||
|
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error(res.msg);
|
return this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
init() {
|
init () {
|
||||||
this.getInfoList();
|
this.getInfoList()
|
||||||
this.visible = true;
|
this.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.dataForm && this.$refs.dataForm.resetFields();
|
this.$refs.dataForm && this.$refs.dataForm.resetFields()
|
||||||
this.iconList = getIconList();
|
this.iconList = getIconList()
|
||||||
if (this.dataForm.id) {
|
if (this.dataForm.id) {
|
||||||
this.getInfo();
|
this.getInfo()
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 获取属性信息
|
// 获取属性信息
|
||||||
getInfoList() {
|
getInfoList () {
|
||||||
const parms = {
|
const parms = {
|
||||||
topCategoryName: "应用资源",
|
topCategoryName: '应用资源'
|
||||||
};
|
}
|
||||||
this.infoList2 = [];
|
this.infoList2 = []
|
||||||
this.$http
|
this.$http
|
||||||
.get("/category/getAllFiledByTopCategory" + "?" + qs.stringify(parms))
|
.get('/category/getAllFiledByTopCategory' + '?' + qs.stringify(parms))
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error(res.msg);
|
return this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
res.data.map((item, index) => {
|
res.data.map((item, index) => {
|
||||||
if (
|
if (
|
||||||
item.name.search("应用名称") == -1 &&
|
item.name.search('应用名称') == -1 &&
|
||||||
item.name.search("地址") == -1 &&
|
item.name.search('地址') == -1 &&
|
||||||
// item.name.search("描述") == -1 &&
|
// item.name.search("描述") == -1 &&
|
||||||
item.name !== "组件描述" &&
|
item.name !== '组件描述' &&
|
||||||
item.name !== "组件名称" &&
|
item.name !== '组件名称' &&
|
||||||
item.name !== "服务接口" &&
|
item.name !== '服务接口' &&
|
||||||
item.name !== "共享类型" &&
|
item.name !== '共享类型' &&
|
||||||
item.name !== "共享条件" &&
|
item.name !== '共享条件' &&
|
||||||
item.name !== "共享方式" &&
|
item.name !== '共享方式' &&
|
||||||
item.name !== "部门联系人电话" &&
|
item.name !== '部门联系人电话' &&
|
||||||
item.name !== "部门统一社会代码" &&
|
item.name !== '部门统一社会代码' &&
|
||||||
item.name !== "部门联系人" &&
|
item.name !== '部门联系人' &&
|
||||||
item.name !== "服务商统一社会信用代码" &&
|
item.name !== '服务商统一社会信用代码' &&
|
||||||
item.name !== "服务接口请求方式" &&
|
item.name !== '服务接口请求方式' &&
|
||||||
item.name !== "部门名称"
|
item.name !== '部门名称'
|
||||||
) {
|
) {
|
||||||
const duixiang = {
|
const duixiang = {
|
||||||
attrType: item.name,
|
attrType: item.name,
|
||||||
attrValue: "",
|
attrValue: '',
|
||||||
delFlag: 0,
|
delFlag: 0
|
||||||
};
|
}
|
||||||
this.infoList2.push(item);
|
this.infoList2.push(item)
|
||||||
if (item.isLinkToDic != "false") {
|
if (item.isLinkToDic != 'false') {
|
||||||
const xinxi = {
|
const xinxi = {
|
||||||
page: 1,
|
page: 1,
|
||||||
limit: 99,
|
limit: 99,
|
||||||
dictTypeId: item.linkValue,
|
dictTypeId: item.linkValue,
|
||||||
dictLabel: "",
|
dictLabel: '',
|
||||||
dictValue: "",
|
dictValue: ''
|
||||||
};
|
}
|
||||||
this.$http
|
this.$http
|
||||||
.get("/sys/dict/data/page" + "?" + qs.stringify(xinxi))
|
.get('/sys/dict/data/page' + '?' + qs.stringify(xinxi))
|
||||||
.then(({ data: res2 }) => {
|
.then(({ data: res2 }) => {
|
||||||
// this.infoList2[index - 1].children = res2.data.list
|
// this.infoList2[index - 1].children = res2.data.list
|
||||||
this.infoList2.map((item3, index3) => {
|
this.infoList2.map((item3, index3) => {
|
||||||
if (item3.name == item.name) {
|
if (item3.name == item.name) {
|
||||||
Vue.set(
|
Vue.set(
|
||||||
this.infoList2[index3],
|
this.infoList2[index3],
|
||||||
"children",
|
'children',
|
||||||
res2.data.list
|
res2.data.list
|
||||||
);
|
)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
this.dataFormUpdate.infoList.map((item3, index3) => {
|
this.dataFormUpdate.infoList.map((item3, index3) => {
|
||||||
if (item3.attrType == item.name) {
|
if (item3.attrType == item.name) {
|
||||||
Vue.set(
|
Vue.set(
|
||||||
this.dataFormUpdate.infoList[index3],
|
this.dataFormUpdate.infoList[index3],
|
||||||
"children",
|
'children',
|
||||||
res2.data.list
|
res2.data.list
|
||||||
);
|
)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
console.log(
|
console.log(
|
||||||
"11111111111111111111111111110",
|
'11111111111111111111111111110',
|
||||||
this.dataFormUpdate
|
this.dataFormUpdate
|
||||||
);
|
)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
this.dataForm.infoList.push(duixiang);
|
this.dataForm.infoList.push(duixiang)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
console.log("this.infoList", this.dataFormUpdate);
|
console.log('this.infoList', this.dataFormUpdate)
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {})
|
||||||
this.$http
|
this.$http
|
||||||
.get("/sys/dict/data/page" + "?" + qs.stringify(parms))
|
.get('/sys/dict/data/page' + '?' + qs.stringify(parms))
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error(res.msg);
|
return this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
console.log("this.infoList", this.dataForm);
|
console.log('this.infoList', this.dataForm)
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {})
|
||||||
},
|
},
|
||||||
// 图标, 选中
|
// 图标, 选中
|
||||||
iconListCurrentChangeHandle(icon) {
|
iconListCurrentChangeHandle (icon) {
|
||||||
this.dataForm.imgurl = icon;
|
this.dataForm.imgurl = icon
|
||||||
this.iconListVisible = false;
|
this.iconListVisible = false
|
||||||
},
|
},
|
||||||
// 上级菜单树, 选中
|
// 上级菜单树, 选中
|
||||||
menuListTreeCurrentChangeHandle(data) {
|
menuListTreeCurrentChangeHandle (data) {
|
||||||
this.dataForm.pid = data.id;
|
this.dataForm.pid = data.id
|
||||||
this.dataForm.type = data.name;
|
this.dataForm.type = data.name
|
||||||
this.menuListVisible = false;
|
this.menuListVisible = false
|
||||||
},
|
},
|
||||||
// 上级菜单树, 设置默认值
|
// 上级菜单树, 设置默认值
|
||||||
deptListTreeSetDefaultHandle() {
|
deptListTreeSetDefaultHandle () {
|
||||||
this.dataForm.pid = "0";
|
this.dataForm.pid = '0'
|
||||||
this.dataForm.type = "目录级别";
|
this.dataForm.type = '目录级别'
|
||||||
},
|
},
|
||||||
// 获取信息
|
// 获取信息
|
||||||
getInfo() {
|
getInfo () {
|
||||||
this.$http
|
this.$http
|
||||||
.get("/ability/bsabilityai/" + this.dataForm.id)
|
.get('/ability/bsabilityai/' + this.dataForm.id)
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error(res.msg);
|
return this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
this.dataForm = {
|
this.dataForm = {
|
||||||
...this.dataForm,
|
...this.dataForm,
|
||||||
...res.data,
|
...res.data
|
||||||
};
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {})
|
||||||
},
|
},
|
||||||
// 表单提交
|
// 表单提交
|
||||||
dataFormSubmitHandle: debounce(
|
dataFormSubmitHandle: debounce(
|
||||||
function () {
|
function () {
|
||||||
this.$refs.dataForm.validate((valid) => {
|
this.$refs.dataForm.validate((valid) => {
|
||||||
this.getUserInfo();
|
this.getUserInfo()
|
||||||
this.dataForm.deptId = this.deptId;
|
this.dataForm.deptId = this.deptId
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
this.$message.error("请检查表单是否填写完整");
|
this.$message.error('请检查表单是否填写完整')
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
console.log("表单数据=======================》", this.dataForm);
|
console.log('表单数据=======================》', this.dataForm)
|
||||||
if (!this.UpdateState) {
|
if (!this.UpdateState) {
|
||||||
this.dataForm.infoList = [];
|
this.dataForm.infoList = []
|
||||||
this.dataForm.showListAll.forEach((val) => {
|
this.dataForm.showListAll.forEach((val) => {
|
||||||
if (val.name !== "必填信息") {
|
if (val.name !== '必填信息') {
|
||||||
if (val.name === "服务接口信息") {
|
if (val.name === '服务接口信息') {
|
||||||
val.children.forEach((item) => {
|
val.children.forEach((item) => {
|
||||||
if (item.name === "服务接口") {
|
if (item.name === '服务接口') {
|
||||||
this.dataForm.apiUrl = item.note1;
|
this.dataForm.apiUrl = item.note1
|
||||||
}
|
}
|
||||||
if (item.name === "接口请求方式") {
|
if (item.name === '接口请求方式') {
|
||||||
this.dataForm.apiMethodType = item.note1;
|
this.dataForm.apiMethodType = item.note1
|
||||||
}
|
}
|
||||||
if (item.name === "访问地址") {
|
if (item.name === '访问地址') {
|
||||||
this.dataForm.link = item.note1;
|
this.dataForm.link = item.note1
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
} else {
|
} else {
|
||||||
val.children.forEach((item) => {
|
val.children.forEach((item) => {
|
||||||
this.dataForm.infoList.push({
|
this.dataForm.infoList.push({
|
||||||
attrType: item.name,
|
attrType: item.name,
|
||||||
attrValue: item.note1,
|
attrValue: item.note1,
|
||||||
delFlag: 0,
|
delFlag: 0
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
this.$http
|
this.$http
|
||||||
.post("/resource/insert?source= b", this.dataForm)
|
.post('/resource/insert?source= b', this.dataForm)
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error(res.msg);
|
return this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
this.$message({
|
this.$message({
|
||||||
message: this.$t("prompt.success"),
|
message: this.$t('prompt.success'),
|
||||||
type: "success",
|
type: 'success',
|
||||||
duration: 500,
|
duration: 500,
|
||||||
onClose: () => {
|
onClose: () => {
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
this.$emit("refreshDataList");
|
this.$emit('refreshDataList')
|
||||||
},
|
}
|
||||||
});
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {})
|
||||||
} else {
|
} else {
|
||||||
this.$http
|
this.$http
|
||||||
.put("/resource/update", this.dataFormUpdate)
|
.put('/resource/update', this.dataFormUpdate)
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error(res.msg);
|
return this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
this.$message({
|
this.$message({
|
||||||
message: this.$t("prompt.success"),
|
message: this.$t('prompt.success'),
|
||||||
type: "success",
|
type: 'success',
|
||||||
duration: 500,
|
duration: 500,
|
||||||
onClose: () => {
|
onClose: () => {
|
||||||
this.visible = false;
|
this.visible = false
|
||||||
this.$emit("refreshDataList");
|
this.$emit('refreshDataList')
|
||||||
},
|
}
|
||||||
});
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {})
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
1000,
|
1000,
|
||||||
{ leading: true, trailing: false }
|
{ leading: true, trailing: false }
|
||||||
),
|
),
|
||||||
showListChagne() {
|
showListChagne () {
|
||||||
this.dataForm.showList = this.dataForm.showListAll.filter(
|
this.dataForm.showList = this.dataForm.showListAll.filter(
|
||||||
(item) => this.checkList.indexOf(item.name) > -1
|
(item) => this.checkList.indexOf(item.name) > -1
|
||||||
);
|
)
|
||||||
console.log(
|
console.log(
|
||||||
"属性变更===================>",
|
'属性变更===================>',
|
||||||
this.checkList,
|
this.checkList,
|
||||||
this.dataForm.showList,
|
this.dataForm.showList,
|
||||||
this.dataForm.showListAll
|
this.dataForm.showListAll
|
||||||
);
|
)
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted () {
|
||||||
this.getUserInfo();
|
this.getUserInfo()
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy () {
|
||||||
console.log("销毁~~~~~~~~~~~~~~~~~~~~");
|
console.log('销毁~~~~~~~~~~~~~~~~~~~~')
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
@ -149,7 +149,7 @@
|
||||||
>详情</el-button
|
>详情</el-button
|
||||||
>
|
>
|
||||||
<el-button type="text" size="small" @click="showDocument(scope.row)"
|
<el-button type="text" size="small" @click="showDocument(scope.row)"
|
||||||
>开发文档</el-button
|
>技术文档</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
|
@ -233,7 +233,7 @@ export default {
|
||||||
mixins: [mixinViewModule],
|
mixins: [mixinViewModule],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '应用名称', '应用描述', '应用状态', '应用类型'],
|
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '应用名称', '应用描述', '应用类型'],
|
||||||
notFilled: [],
|
notFilled: [],
|
||||||
mixinViewModuleOptions: {
|
mixinViewModuleOptions: {
|
||||||
getDataListURL: '/resource/page',
|
getDataListURL: '/resource/page',
|
||||||
|
@ -692,9 +692,9 @@ export default {
|
||||||
if (!this.submitFrom.infoList.filter(val => val.attrType == '应用领域')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用领域')[0].attrValue) {
|
if (!this.submitFrom.infoList.filter(val => val.attrType == '应用领域')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用领域')[0].attrValue) {
|
||||||
this.notFilled.push('应用领域')
|
this.notFilled.push('应用领域')
|
||||||
}
|
}
|
||||||
if (!this.submitFrom.infoList.filter(val => val.attrType == '应用状态')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用状态')[0].attrValue) {
|
// if (!this.submitFrom.infoList.filter(val => val.attrType == '应用状态')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用状态')[0].attrValue) {
|
||||||
this.notFilled.push('应用状态')
|
// this.notFilled.push('应用状态')
|
||||||
}
|
// }
|
||||||
if (!this.submitFrom.infoList.filter(val => val.attrType == '应用类型')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用类型')[0].attrValue) {
|
if (!this.submitFrom.infoList.filter(val => val.attrType == '应用类型')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用类型')[0].attrValue) {
|
||||||
this.notFilled.push('应用类型')
|
this.notFilled.push('应用类型')
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,25 +64,55 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<!-- 流程综合组件 -->
|
<!-- 流程综合组件 -->
|
||||||
<ren-process-multiple
|
<!-- <ren-process-multiple
|
||||||
v-if="processVisible"
|
v-if="processVisible"
|
||||||
updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId"
|
updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId"
|
||||||
saveFormUrl="/processForm/tabilityapplication"
|
saveFormUrl="/processForm/tabilityapplication"
|
||||||
dataFormName="dataForm"
|
dataFormName="dataForm"
|
||||||
ref="renProcessMultiple"
|
ref="renProcessMultiple"
|
||||||
></ren-process-multiple>
|
></ren-process-multiple> -->
|
||||||
|
<!-- 审批 -->
|
||||||
|
<div class="agreeOr" v-if="taskId">
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
||||||
|
<el-button type="danger" plain @click="showDialog('拒绝')"
|
||||||
|
>驳回</el-button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 审批弹窗 -->
|
||||||
|
<el-dialog
|
||||||
|
title="审批意见"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
width="30%"
|
||||||
|
:before-close="handleClose"
|
||||||
|
>
|
||||||
|
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="handleClose2">取 消</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
|
||||||
|
>确 定</el-button
|
||||||
|
>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// 引入工作流公共方法
|
// 引入工作流公共方法
|
||||||
import processModule from '@/mixins/process-module'
|
import processModule from '@/mixins/process-module'
|
||||||
|
import qs from 'qs'
|
||||||
|
import debounce from 'lodash/debounce'
|
||||||
|
import bus from '@/views/bus.js'
|
||||||
export default {
|
export default {
|
||||||
// 注入公共方法
|
// 注入公共方法
|
||||||
mixins: [processModule],
|
mixins: [processModule],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
visible: false,
|
// visible: false,
|
||||||
// 表单属性是否可编辑
|
// 表单属性是否可编辑
|
||||||
fieldDisabled: false,
|
fieldDisabled: false,
|
||||||
dataForm: {
|
dataForm: {
|
||||||
|
@ -94,7 +124,13 @@ export default {
|
||||||
system: '',
|
system: '',
|
||||||
scene: '',
|
scene: '',
|
||||||
basis: ''
|
basis: ''
|
||||||
}
|
},
|
||||||
|
// 审批
|
||||||
|
dialogVisible: false,
|
||||||
|
dialogType: '',
|
||||||
|
input: '',
|
||||||
|
visible: true,
|
||||||
|
taskId: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
|
@ -113,6 +149,8 @@ export default {
|
||||||
}
|
}
|
||||||
// 初始化综合组件
|
// 初始化综合组件
|
||||||
this.initProcessMultiple(callbacks)
|
this.initProcessMultiple(callbacks)
|
||||||
|
this.taskId = this.$route.params.taskId
|
||||||
|
this.dataForm.taskId = this.$route.params.taskId
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
dataRule () {
|
dataRule () {
|
||||||
|
@ -164,6 +202,128 @@ export default {
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
.catch(() => {})
|
||||||
},
|
},
|
||||||
|
// 审批
|
||||||
|
showDialog (title) {
|
||||||
|
this.dialogVisible = true
|
||||||
|
this.dialogType = title
|
||||||
|
},
|
||||||
|
handleClose (done) {
|
||||||
|
this.$confirm('确认关闭?')
|
||||||
|
.then((_) => {
|
||||||
|
this.input = ''
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
.catch((_) => {})
|
||||||
|
},
|
||||||
|
handleClose2 () {
|
||||||
|
this.dialogVisible = false
|
||||||
|
this.input = ''
|
||||||
|
},
|
||||||
|
// 同意与退回
|
||||||
|
agreeOrNot: debounce(
|
||||||
|
function (data) {
|
||||||
|
this.dataForm.taskId = this.$route.params.taskId
|
||||||
|
if (this.dialogType === '同意') {
|
||||||
|
if (this.input !== '') {
|
||||||
|
console.log('this.dataForm', this.dataForm)
|
||||||
|
const params = qs.stringify({
|
||||||
|
taskId: this.dataForm.taskId,
|
||||||
|
comment: this.input
|
||||||
|
})
|
||||||
|
console.log(params)
|
||||||
|
this.$http
|
||||||
|
.post('/act/task/complete?' + params)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bus.$emit('AbilityResourcesRemovedInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
this.dialogVisible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
|
} else if (this.dialogType === '拒绝') {
|
||||||
|
if (this.input !== '') {
|
||||||
|
const params = qs.stringify({
|
||||||
|
taskId: this.dataForm.taskId,
|
||||||
|
comment: this.input
|
||||||
|
})
|
||||||
|
this.$http
|
||||||
|
.post('/act/task/backToFirst?', params)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bus.$emit('AbilityResourcesRemovedInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
1000,
|
||||||
|
{ leading: true, trailing: false }
|
||||||
|
),
|
||||||
|
tabRemoveHandle (tabName) {
|
||||||
|
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||||
|
if (tabName === 'home') {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
|
||||||
|
(item) => item.name !== tabName
|
||||||
|
)
|
||||||
|
if (this.$store.state.contentTabs.length <= 0) {
|
||||||
|
this.$store.state.sidebarMenuActiveName =
|
||||||
|
this.$store.state.contentTabsActiveName = 'home'
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// 当前选中tab被删除
|
||||||
|
if (tabName === this.$store.state.contentTabsActiveName) {
|
||||||
|
const tab =
|
||||||
|
this.$store.state.contentTabs[
|
||||||
|
this.$store.state.contentTabs.length - 1
|
||||||
|
]
|
||||||
|
this.$router.push({
|
||||||
|
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
|
||||||
|
params: { ...tab.params },
|
||||||
|
query: { ...tab.query }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
// 启动流程出错回调
|
// 启动流程出错回调
|
||||||
startProcessErrorCallback (data) {
|
startProcessErrorCallback (data) {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
|
@ -173,3 +333,12 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss">
|
||||||
|
.agreeOr {
|
||||||
|
& > div {
|
||||||
|
// text-align: right;
|
||||||
|
padding-right: 40px;
|
||||||
|
margin: 20px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -7,28 +7,65 @@
|
||||||
@keyup.enter.native="dataFormSubmitHandle()"
|
@keyup.enter.native="dataFormSubmitHandle()"
|
||||||
:label-width="$i18n.locale === 'en-US' ? '120px' : 'auto'"
|
:label-width="$i18n.locale === 'en-US' ? '120px' : 'auto'"
|
||||||
>
|
>
|
||||||
<el-form-item label="评论内容">
|
<el-tooltip placement="bottom" :content="dataForm.comment">
|
||||||
<el-input
|
<template #title>
|
||||||
v-model="dataForm.comment"
|
<span>{{ dataForm.comment }}</span>
|
||||||
:disabled="fieldDisabled"
|
</template>
|
||||||
placeholder="评论内容"
|
<el-form-item label="评论内容">
|
||||||
></el-input>
|
<el-input
|
||||||
</el-form-item>
|
type="textarea"
|
||||||
|
v-model="dataForm.comment"
|
||||||
|
:disabled="fieldDisabled"
|
||||||
|
placeholder="评论内容"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-tooltip>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<!-- 流程综合组件 -->
|
<!-- 流程综合组件 -->
|
||||||
<ren-process-multiple
|
<!-- <ren-process-multiple
|
||||||
v-if="processVisible"
|
v-if="processVisible"
|
||||||
updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId"
|
updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId"
|
||||||
saveFormUrl="/processForm/tabilityapplication"
|
saveFormUrl="/processForm/tabilityapplication"
|
||||||
dataFormName="dataForm"
|
dataFormName="dataForm"
|
||||||
ref="renProcessMultiple"
|
ref="renProcessMultiple"
|
||||||
></ren-process-multiple>
|
></ren-process-multiple> -->
|
||||||
|
<!-- 审批 -->
|
||||||
|
<div class="agreeOr" v-if="taskId">
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
||||||
|
<el-button type="danger" plain @click="showDialog('拒绝')"
|
||||||
|
>驳回</el-button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 审批弹窗 -->
|
||||||
|
<el-dialog
|
||||||
|
title="审批意见"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
width="30%"
|
||||||
|
:before-close="handleClose"
|
||||||
|
>
|
||||||
|
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="handleClose2">取 消</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
|
||||||
|
>确 定</el-button
|
||||||
|
>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import processModule from '@/mixins/process-module'
|
import processModule from '@/mixins/process-module'
|
||||||
|
import qs from 'qs'
|
||||||
|
import debounce from 'lodash/debounce'
|
||||||
|
import bus from '@/views/bus.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
// 注入公共方法
|
// 注入公共方法
|
||||||
mixins: [processModule],
|
mixins: [processModule],
|
||||||
|
@ -44,12 +81,19 @@ export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
// processVisible: true,
|
// processVisible: true,
|
||||||
visible: false,
|
// visible: false,
|
||||||
// 表单属性是否可编辑
|
// 表单属性是否可编辑
|
||||||
fieldDisabled: false,
|
fieldDisabled: false,
|
||||||
dataForm: [],
|
dataForm: [],
|
||||||
id: '',
|
id: '',
|
||||||
shifoushizujian: true
|
shifoushizujian: true,
|
||||||
|
// 审批
|
||||||
|
dialogVisible: false,
|
||||||
|
dialogType: '',
|
||||||
|
input: '',
|
||||||
|
visible: true,
|
||||||
|
taskId: ''
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {},
|
watch: {},
|
||||||
|
@ -85,6 +129,128 @@ export default {
|
||||||
// }
|
// }
|
||||||
console.log('this.dataForm', this.dataForm)
|
console.log('this.dataForm', this.dataForm)
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
// 审批
|
||||||
|
showDialog (title) {
|
||||||
|
this.dialogVisible = true
|
||||||
|
this.dialogType = title
|
||||||
|
},
|
||||||
|
handleClose (done) {
|
||||||
|
this.$confirm('确认关闭?')
|
||||||
|
.then((_) => {
|
||||||
|
this.input = ''
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
.catch((_) => {})
|
||||||
|
},
|
||||||
|
handleClose2 () {
|
||||||
|
this.dialogVisible = false
|
||||||
|
this.input = ''
|
||||||
|
},
|
||||||
|
// 同意与退回
|
||||||
|
agreeOrNot: debounce(
|
||||||
|
function (data) {
|
||||||
|
this.dataForm.taskId = this.$route.params.taskId
|
||||||
|
if (this.dialogType === '同意') {
|
||||||
|
if (this.input !== '') {
|
||||||
|
console.log('this.dataForm', this.dataForm)
|
||||||
|
const params = qs.stringify({
|
||||||
|
taskId: this.dataForm.taskId,
|
||||||
|
comment: this.input
|
||||||
|
})
|
||||||
|
console.log(params)
|
||||||
|
this.$http
|
||||||
|
.post('/act/task/complete?' + params)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bus.$emit('AbilityResourcesRemovedInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
this.dialogVisible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
|
} else if (this.dialogType === '拒绝') {
|
||||||
|
if (this.input !== '') {
|
||||||
|
const params = qs.stringify({
|
||||||
|
taskId: this.dataForm.taskId,
|
||||||
|
comment: this.input
|
||||||
|
})
|
||||||
|
this.$http
|
||||||
|
.post('/act/task/backToFirst?', params)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bus.$emit('AbilityResourcesRemovedInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
1000,
|
||||||
|
{ leading: true, trailing: false }
|
||||||
|
),
|
||||||
|
tabRemoveHandle (tabName) {
|
||||||
|
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||||
|
if (tabName === 'home') {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
|
||||||
|
(item) => item.name !== tabName
|
||||||
|
)
|
||||||
|
if (this.$store.state.contentTabs.length <= 0) {
|
||||||
|
this.$store.state.sidebarMenuActiveName =
|
||||||
|
this.$store.state.contentTabsActiveName = 'home'
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// 当前选中tab被删除
|
||||||
|
if (tabName === this.$store.state.contentTabsActiveName) {
|
||||||
|
const tab =
|
||||||
|
this.$store.state.contentTabs[
|
||||||
|
this.$store.state.contentTabs.length - 1
|
||||||
|
]
|
||||||
|
this.$router.push({
|
||||||
|
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
|
||||||
|
params: { ...tab.params },
|
||||||
|
query: { ...tab.query }
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
|
@ -102,14 +268,27 @@ export default {
|
||||||
}
|
}
|
||||||
// 初始化综合组件
|
// 初始化综合组件
|
||||||
this.initProcessMultiple(callbacks)
|
this.initProcessMultiple(callbacks)
|
||||||
|
this.taskId = this.$route.params.taskId
|
||||||
|
this.dataForm.taskId = this.$route.params.taskId
|
||||||
},
|
},
|
||||||
mounted () {}
|
mounted () {}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" >
|
||||||
.kuandukuandukuandu{
|
.kuandukuandukuandu {
|
||||||
max-width:1500px;
|
max-width: 1500px;
|
||||||
|
}
|
||||||
|
.agreeOr {
|
||||||
|
& > div {
|
||||||
|
// text-align: right;
|
||||||
|
padding-right: 40px;
|
||||||
|
margin: 20px 0;
|
||||||
}
|
}
|
||||||
.wrapper {
|
}
|
||||||
|
</style>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep .el-textarea__inner {
|
||||||
|
height: 100px;
|
||||||
|
resize: none;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -106,7 +106,7 @@
|
||||||
</el-radio-group> -->
|
</el-radio-group> -->
|
||||||
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
||||||
<el-button type="danger" plain @click="showDialog('拒绝')"
|
<el-button type="danger" plain @click="showDialog('拒绝')"
|
||||||
>拒绝</el-button
|
>驳回</el-button
|
||||||
>
|
>
|
||||||
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
|
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
|
||||||
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
|
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
|
||||||
|
@ -229,68 +229,76 @@ export default {
|
||||||
function (data) {
|
function (data) {
|
||||||
this.dataForm.taskId = this.$route.params.taskId
|
this.dataForm.taskId = this.$route.params.taskId
|
||||||
if (this.dialogType === '同意') {
|
if (this.dialogType === '同意') {
|
||||||
console.log('this.dataForm', this.dataForm)
|
if (this.input !== '') {
|
||||||
const params = qs.stringify({
|
console.log('this.dataForm', this.dataForm)
|
||||||
taskId: this.dataForm.taskId,
|
const params = qs.stringify({
|
||||||
comment: this.input
|
taskId: this.dataForm.taskId,
|
||||||
})
|
comment: this.input
|
||||||
console.log(params)
|
|
||||||
this.$http
|
|
||||||
.post('/act/task/complete?' + params)
|
|
||||||
.then(({ data: res }) => {
|
|
||||||
if (res.code !== 0) {
|
|
||||||
this.$message.error(res.msg)
|
|
||||||
if (this.callbacks.taskHandleErrorCallback) {
|
|
||||||
this.callbacks.taskHandleErrorCallback(res)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
bus.$emit('AbilityResourcesRemovedInit')
|
|
||||||
this.$message({
|
|
||||||
message: this.$t('prompt.success'),
|
|
||||||
type: 'success',
|
|
||||||
duration: 500,
|
|
||||||
onClose: () => {
|
|
||||||
this.visible = false
|
|
||||||
this.dialogVisible = false
|
|
||||||
if (this.callbacks.taskHandleSuccessCallback) {
|
|
||||||
this.callbacks.taskHandleSuccessCallback(res)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
console.log(params)
|
||||||
|
this.$http
|
||||||
|
.post('/act/task/complete?' + params)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bus.$emit('AbilityResourcesRemovedInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
this.dialogVisible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
} else if (this.dialogType === '拒绝') {
|
} else if (this.dialogType === '拒绝') {
|
||||||
const params = qs.stringify({
|
if (this.input !== '') {
|
||||||
taskId: this.dataForm.taskId,
|
const params = qs.stringify({
|
||||||
comment: this.input
|
taskId: this.dataForm.taskId,
|
||||||
})
|
comment: this.input
|
||||||
this.$http
|
|
||||||
.post('/act/task/backToFirst?', params)
|
|
||||||
.then(({ data: res }) => {
|
|
||||||
if (res.code !== 0) {
|
|
||||||
this.$message.error(res.msg)
|
|
||||||
if (this.callbacks.taskHandleErrorCallback) {
|
|
||||||
this.callbacks.taskHandleErrorCallback(res)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
bus.$emit('AbilityResourcesRemovedInit')
|
|
||||||
this.$message({
|
|
||||||
message: this.$t('prompt.success'),
|
|
||||||
type: 'success',
|
|
||||||
duration: 500,
|
|
||||||
onClose: () => {
|
|
||||||
this.visible = false
|
|
||||||
if (this.callbacks.taskHandleSuccessCallback) {
|
|
||||||
this.callbacks.taskHandleSuccessCallback(res)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
this.$http
|
||||||
|
.post('/act/task/backToFirst?', params)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bus.$emit('AbilityResourcesRemovedInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.tabRemoveHandle(data)
|
|
||||||
// this.getDataList(data)
|
|
||||||
},
|
},
|
||||||
1000,
|
1000,
|
||||||
{ leading: true, trailing: false }
|
{ leading: true, trailing: false }
|
||||||
|
|
|
@ -136,15 +136,7 @@ export default {
|
||||||
return this.$message.error(this.$t('task.detailError'))
|
return this.$message.error(this.$t('task.detailError'))
|
||||||
}
|
}
|
||||||
this.getProcDefRouteSet(row, this.forwardDetail)
|
this.getProcDefRouteSet(row, this.forwardDetail)
|
||||||
},
|
|
||||||
methodsThree () {
|
|
||||||
this.$http.get('/category/getCategoryTree').then((res) => {
|
|
||||||
localStorage.setItem('getCategoryTree', JSON.stringify(res.data.data))
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
mounted () {
|
|
||||||
this.methodsThree()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<el-form>
|
<el-form :model="dataView">
|
||||||
<div v-for="(item, index) in dataView.children" :key="item">
|
<div v-for="(item, index) in dataView.children" :key="item">
|
||||||
<!-- <div class="dataTitle">{{ item.name }}</div> -->
|
<!-- <div class="dataTitle">{{ item.name }}</div> -->
|
||||||
<div v-for="itemson in item.children" :key="itemson.name">
|
<div v-for="itemson in item.children" :key="itemson.name">
|
||||||
|
@ -234,68 +234,8 @@ export default {
|
||||||
if (item) {
|
if (item) {
|
||||||
this.dataList = item
|
this.dataList = item
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {},
|
|
||||||
methods: {
|
|
||||||
videoAndImg (link) {
|
|
||||||
if (link) {
|
|
||||||
window.open(link)
|
|
||||||
} else {
|
|
||||||
this.$message({
|
|
||||||
message: '未上传',
|
|
||||||
type: 'warning'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
deptName () {
|
insertList (val) {
|
||||||
console.log(this.dataForm.deptId)
|
|
||||||
this.$http
|
|
||||||
.get(`/sys/dept/${this.dataForm.deptId}`)
|
|
||||||
.then(({ data: res }) => {
|
|
||||||
console.log(res.data.name, 'res')
|
|
||||||
this.unit = res.data.name
|
|
||||||
})
|
|
||||||
},
|
|
||||||
queryPartAppByKeyIdFunction (index, indexSon, indexSonSon) {
|
|
||||||
if (this.dataForm.type === '组件服务') {
|
|
||||||
this.$http
|
|
||||||
.get(
|
|
||||||
'/dataResourceRel/queryApp4PartByKeyId' +
|
|
||||||
'?keyId=' +
|
|
||||||
this.dataForm.id
|
|
||||||
)
|
|
||||||
.then(({ data: res }) => {
|
|
||||||
this.dataView.children[index].children[indexSon].children[
|
|
||||||
indexSonSon
|
|
||||||
].note1 = ''
|
|
||||||
res.data.map((item) => {
|
|
||||||
this.dataView.children[index].children[indexSon].children[
|
|
||||||
indexSonSon
|
|
||||||
].note1 += item.name + ';'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
this.$http
|
|
||||||
.get(
|
|
||||||
'/dataResourceRel/queryPart4AppByKeyId?keyId=' +
|
|
||||||
this.dataForm.id +
|
|
||||||
'&type=' +
|
|
||||||
'组件服务'
|
|
||||||
)
|
|
||||||
.then(({ data: res }) => {
|
|
||||||
this.dataView.children[index].children[indexSon].children[
|
|
||||||
indexSonSon
|
|
||||||
].note1 = ''
|
|
||||||
res.data.map((item) => {
|
|
||||||
this.dataView.children[index].children[indexSon].children[
|
|
||||||
indexSonSon
|
|
||||||
].note1 += item.name + ';'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
insertListFunction (val) {
|
|
||||||
if (val) {
|
if (val) {
|
||||||
if (this.dataForm.type === '应用资源') {
|
if (this.dataForm.type === '应用资源') {
|
||||||
this.dataView = val.filter(
|
this.dataView = val.filter(
|
||||||
|
@ -483,10 +423,69 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {},
|
||||||
|
methods: {
|
||||||
|
videoAndImg (link) {
|
||||||
|
if (link) {
|
||||||
|
window.open(link)
|
||||||
|
} else {
|
||||||
|
this.$message({
|
||||||
|
message: '未上传',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deptName () {
|
||||||
|
console.log(this.dataForm.deptId)
|
||||||
|
this.$http
|
||||||
|
.get(`/sys/dept/${this.dataForm.deptId}`)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
console.log(res.data.name, 'res')
|
||||||
|
this.unit = res.data.name
|
||||||
|
})
|
||||||
|
},
|
||||||
|
queryPartAppByKeyIdFunction (index, indexSon, indexSonSon) {
|
||||||
|
if (this.dataForm.type === '组件服务') {
|
||||||
|
this.$http
|
||||||
|
.get(
|
||||||
|
'/dataResourceRel/queryApp4PartByKeyId' +
|
||||||
|
'?keyId=' +
|
||||||
|
this.dataForm.id
|
||||||
|
)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
this.dataView.children[index].children[indexSon].children[
|
||||||
|
indexSonSon
|
||||||
|
].note1 = ''
|
||||||
|
res.data.map((item) => {
|
||||||
|
this.dataView.children[index].children[indexSon].children[
|
||||||
|
indexSonSon
|
||||||
|
].note1 += item.name + ';'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$http
|
||||||
|
.get(
|
||||||
|
'/dataResourceRel/queryPart4AppByKeyId?keyId=' +
|
||||||
|
this.dataForm.id +
|
||||||
|
'&type=' +
|
||||||
|
'组件服务'
|
||||||
|
)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
this.dataView.children[index].children[indexSon].children[
|
||||||
|
indexSonSon
|
||||||
|
].note1 = ''
|
||||||
|
res.data.map((item) => {
|
||||||
|
this.dataView.children[index].children[indexSon].children[
|
||||||
|
indexSonSon
|
||||||
|
].note1 += item.name + ';'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
created () {},
|
created () {},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.deptName()
|
this.deptName()
|
||||||
this.insertListFunction(this.insertList)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -135,16 +135,16 @@ export default {
|
||||||
this.init()
|
this.init()
|
||||||
console.log('fromList', this.$router.currentRoute.params.businessKey)
|
console.log('fromList', this.$router.currentRoute.params.businessKey)
|
||||||
// this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO
|
// this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO
|
||||||
// var callbacks = {
|
var callbacks = {
|
||||||
// startProcessSuccessCallback: this.closeCurrentTab,
|
startProcessSuccessCallback: this.closeCurrentTab,
|
||||||
// startProcessErrorCallback: this.startProcessErrorCallback,
|
startProcessErrorCallback: this.startProcessErrorCallback,
|
||||||
// taskHandleSuccessCallback: this.closeCurrentTab,
|
taskHandleSuccessCallback: this.closeCurrentTab,
|
||||||
// taskHandleErrorCallback: this.taskHandleErrorCallback,
|
taskHandleErrorCallback: this.taskHandleErrorCallback,
|
||||||
// formSaveSuccessCallback: null,
|
formSaveSuccessCallback: null,
|
||||||
// formSaveErrorCallback: null
|
formSaveErrorCallback: null
|
||||||
// }
|
}
|
||||||
// // 初始化综合组件
|
// 初始化综合组件
|
||||||
// this.initProcessMultiple(callbacks)
|
this.initProcessMultiple(callbacks)
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
const businessKey = this.$router.currentRoute.params.businessKey
|
const businessKey = this.$router.currentRoute.params.businessKey
|
||||||
|
@ -180,10 +180,9 @@ export default {
|
||||||
this.input = ''
|
this.input = ''
|
||||||
},
|
},
|
||||||
methodsThree () {
|
methodsThree () {
|
||||||
// this.$http.get('/category/getCategoryTree').then((res) => {
|
this.$http.get('/category/getCategoryTree').then((res) => {
|
||||||
// this.insertList = res.data.data
|
this.insertList = res.data.data
|
||||||
// })
|
})
|
||||||
this.insertList = JSON.parse(localStorage.getItem('getCategoryTree'))
|
|
||||||
},
|
},
|
||||||
init () {
|
init () {
|
||||||
this.visible = true
|
this.visible = true
|
||||||
|
@ -201,69 +200,78 @@ export default {
|
||||||
agreeOrNot: debounce(
|
agreeOrNot: debounce(
|
||||||
function (data) {
|
function (data) {
|
||||||
if (this.dialogType === '同意') {
|
if (this.dialogType === '同意') {
|
||||||
console.log('this.dataForm', this.dataForm)
|
if (this.input !== '') {
|
||||||
const params = qs.stringify({
|
console.log('this.dataForm', this.dataForm)
|
||||||
taskId: this.taskId,
|
const params = qs.stringify({
|
||||||
comment: this.input
|
taskId: this.taskId,
|
||||||
})
|
comment: this.input
|
||||||
console.log(params)
|
|
||||||
this.$http
|
|
||||||
.post('/act/task/complete?' + params)
|
|
||||||
.then(({ data: res }) => {
|
|
||||||
if (res.code !== 0) {
|
|
||||||
this.$message.error(res.msg)
|
|
||||||
if (this.callbacks.taskHandleErrorCallback) {
|
|
||||||
this.callbacks.taskHandleErrorCallback(res)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
bus.$emit('abilityResourceShelfInit')
|
|
||||||
this.$message({
|
|
||||||
message: this.$t('prompt.success'),
|
|
||||||
type: 'success',
|
|
||||||
duration: 500,
|
|
||||||
onClose: () => {
|
|
||||||
this.visible = false
|
|
||||||
this.dialogVisible = false
|
|
||||||
this.input = ''
|
|
||||||
if (this.callbacks.taskHandleSuccessCallback) {
|
|
||||||
this.callbacks.taskHandleSuccessCallback(res)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
console.log(params)
|
||||||
|
this.$http
|
||||||
|
.post('/act/task/complete?' + params)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bus.$emit('abilityResourceShelfInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
this.dialogVisible = false
|
||||||
|
this.input = ''
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
} else if (this.dialogType === '驳回') {
|
} else if (this.dialogType === '驳回') {
|
||||||
const params = qs.stringify({
|
if (this.input !== '') {
|
||||||
taskId: this.taskId,
|
const params = qs.stringify({
|
||||||
comment: this.input
|
taskId: this.taskId,
|
||||||
})
|
comment: this.input
|
||||||
this.$http
|
|
||||||
// .post('/act/task/endProcess?', params)
|
|
||||||
.post('/act/task/backToFirst?', params)
|
|
||||||
.then(({ data: res }) => {
|
|
||||||
if (res.code !== 0) {
|
|
||||||
this.$message.error(res.msg)
|
|
||||||
if (this.callbacks.taskHandleErrorCallback) {
|
|
||||||
this.callbacks.taskHandleErrorCallback(res)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
bus.$emit('abilityResourceShelfInit')
|
|
||||||
this.$message({
|
|
||||||
message: this.$t('prompt.success'),
|
|
||||||
type: 'success',
|
|
||||||
duration: 500,
|
|
||||||
onClose: () => {
|
|
||||||
this.visible = false
|
|
||||||
if (this.callbacks.taskHandleSuccessCallback) {
|
|
||||||
this.callbacks.taskHandleSuccessCallback(res)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
this.$http
|
||||||
|
// .post('/act/task/endProcess?', params)
|
||||||
|
.post('/act/task/backToFirst?', params)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bus.$emit('abilityResourceShelfInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.tabRemoveHandle(data)
|
|
||||||
},
|
},
|
||||||
1000,
|
1000,
|
||||||
{ leading: true, trailing: false }
|
{ leading: true, trailing: false }
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-29 15:59:51
|
* @Date: 2022-06-29 15:59:51
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-07-28 17:23:05
|
* @LastEditTime: 2022-08-04 14:34:45
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<!-- 流程业务表单 -->
|
<!-- 流程业务表单 -->
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
></span
|
></span
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
<p v-if="dataForm.content.enclosure">
|
<p v-if="dataForm.content.enclosure" class="lastP">
|
||||||
<span>
|
<span>
|
||||||
申请附件:<span>
|
申请附件:<span>
|
||||||
{{ dataForm.content.enclosure || '--'
|
{{ dataForm.content.enclosure || '--'
|
||||||
|
@ -102,8 +102,8 @@
|
||||||
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
|
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
|
||||||
</el-radio-group> -->
|
</el-radio-group> -->
|
||||||
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
||||||
<el-button type="danger" plain @click="showDialog('拒绝')"
|
<el-button type="danger" plain @click="showDialog('驳回')"
|
||||||
>拒绝</el-button
|
>驳回</el-button
|
||||||
>
|
>
|
||||||
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
|
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
|
||||||
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
|
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
|
||||||
|
@ -291,6 +291,7 @@ export default {
|
||||||
if (val.cameraList) {
|
if (val.cameraList) {
|
||||||
flag = true
|
flag = true
|
||||||
obj.describe += val.system
|
obj.describe += val.system
|
||||||
|
obj.describe += ';'
|
||||||
} else {
|
} else {
|
||||||
this.$http.get('/resource/' + val.resourceId).then((res1) => {
|
this.$http.get('/resource/' + val.resourceId).then((res1) => {
|
||||||
// console.log(res1.data.data, '1111111111111111111111111111111111')
|
// console.log(res1.data.data, '1111111111111111111111111111111111')
|
||||||
|
@ -380,68 +381,76 @@ export default {
|
||||||
agreeOrNot: debounce(
|
agreeOrNot: debounce(
|
||||||
function (data) {
|
function (data) {
|
||||||
if (this.dialogType === '同意') {
|
if (this.dialogType === '同意') {
|
||||||
console.log('this.dataForm', this.dataForm)
|
if (this.input !== '') {
|
||||||
const params = qs.stringify({
|
console.log('this.dataForm', this.dataForm)
|
||||||
taskId: this.dataForm.taskId,
|
const params = qs.stringify({
|
||||||
comment: this.input
|
taskId: this.dataForm.taskId,
|
||||||
})
|
comment: this.input
|
||||||
console.log(params)
|
|
||||||
this.$http
|
|
||||||
.post('/act/task/complete?' + params)
|
|
||||||
.then(({ data: res }) => {
|
|
||||||
if (res.code !== 0) {
|
|
||||||
this.$message.error(res.msg)
|
|
||||||
if (this.callbacks.taskHandleErrorCallback) {
|
|
||||||
this.callbacks.taskHandleErrorCallback(res)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
bus.$emit('competencyApplicationInit')
|
|
||||||
this.$message({
|
|
||||||
message: this.$t('prompt.success'),
|
|
||||||
type: 'success',
|
|
||||||
duration: 500,
|
|
||||||
onClose: () => {
|
|
||||||
this.visible = false
|
|
||||||
this.dialogVisible = false
|
|
||||||
if (this.callbacks.taskHandleSuccessCallback) {
|
|
||||||
this.callbacks.taskHandleSuccessCallback(res)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
console.log(params)
|
||||||
} else if (this.dialogType === '拒绝') {
|
this.$http
|
||||||
const params = qs.stringify({
|
.post('/act/task/complete?' + params)
|
||||||
taskId: this.dataForm.taskId,
|
.then(({ data: res }) => {
|
||||||
comment: this.input
|
if (res.code !== 0) {
|
||||||
})
|
this.$message.error(res.msg)
|
||||||
this.$http
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
.post('/act/task/endProcess?', params)
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
.then(({ data: res }) => {
|
|
||||||
if (res.code !== 0) {
|
|
||||||
this.$message.error(res.msg)
|
|
||||||
if (this.callbacks.taskHandleErrorCallback) {
|
|
||||||
this.callbacks.taskHandleErrorCallback(res)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
bus.$emit('competencyApplicationInit')
|
|
||||||
this.$message({
|
|
||||||
message: this.$t('prompt.success'),
|
|
||||||
type: 'success',
|
|
||||||
duration: 500,
|
|
||||||
onClose: () => {
|
|
||||||
this.visible = false
|
|
||||||
if (this.callbacks.taskHandleSuccessCallback) {
|
|
||||||
this.callbacks.taskHandleSuccessCallback(res)
|
|
||||||
}
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
bus.$emit('competencyApplicationInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
this.dialogVisible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
|
} else if (this.dialogType === '驳回') {
|
||||||
|
if (this.input !== '') {
|
||||||
|
const params = qs.stringify({
|
||||||
|
taskId: this.dataForm.taskId,
|
||||||
|
comment: this.input
|
||||||
})
|
})
|
||||||
|
this.$http
|
||||||
|
.post('/act/task/backToFirst?', params)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
bus.$emit('competencyApplicationInit')
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
} else {
|
||||||
|
this.$message.error('请输入审批意见!')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.tabRemoveHandle(data)
|
|
||||||
// this.getDataList(data)
|
|
||||||
},
|
},
|
||||||
1000,
|
1000,
|
||||||
{ leading: true, trailing: false }
|
{ leading: true, trailing: false }
|
||||||
|
@ -510,7 +519,7 @@ export default {
|
||||||
width: 500px;
|
width: 500px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
p:last-of-type {
|
.lastP {
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
span {
|
span {
|
||||||
|
|
|
@ -1,40 +1,110 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
|
<el-dialog
|
||||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
|
:visible.sync="visible"
|
||||||
<el-form-item prop="username" :label="$t('user.username')" auto-complete="new-password">
|
:title="!dataForm.id ? $t('add') : $t('update')"
|
||||||
<el-input v-model="dataForm.username" :placeholder="$t('user.username')" auto-complete="new-password"></el-input>
|
:close-on-click-modal="false"
|
||||||
|
:close-on-press-escape="false"
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
:model="dataForm"
|
||||||
|
:rules="dataRule"
|
||||||
|
ref="dataForm"
|
||||||
|
@keyup.enter.native="dataFormSubmitHandle()"
|
||||||
|
label-width="120px"
|
||||||
|
>
|
||||||
|
<el-form-item
|
||||||
|
prop="username"
|
||||||
|
:label="$t('user.username')"
|
||||||
|
auto-complete="new-password"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="dataForm.username"
|
||||||
|
:placeholder="$t('user.username')"
|
||||||
|
auto-complete="new-password"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="deptName" :label="$t('user.deptName')">
|
<el-form-item prop="deptName" :label="$t('user.deptName')">
|
||||||
<ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :dept-name.sync="dataForm.deptName"></ren-dept-tree>
|
<ren-dept-tree
|
||||||
|
v-model="dataForm.deptId"
|
||||||
|
:placeholder="$t('dept.title')"
|
||||||
|
:dept-name.sync="dataForm.deptName"
|
||||||
|
></ren-dept-tree>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="password" :label="$t('user.password')" :class="{ 'is-required': !dataForm.id }" auto-complete="new-password" v-if="!dataForm.id">
|
<el-form-item
|
||||||
<el-input v-model="dataForm.password" type="password" :placeholder="$t('user.password')" auto-complete="new-password" @input="changeInput"></el-input>
|
prop="password"
|
||||||
|
:label="$t('user.password')"
|
||||||
|
:class="{ 'is-required': !dataForm.id }"
|
||||||
|
auto-complete="new-password"
|
||||||
|
v-if="!dataForm.id"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="dataForm.password"
|
||||||
|
type="password"
|
||||||
|
:placeholder="$t('user.password')"
|
||||||
|
auto-complete="new-password"
|
||||||
|
@input="changeInput"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="confirmPassword" :label="$t('user.confirmPassword')" :class="{ 'is-required': !dataForm.id }" v-if="!dataForm.id">
|
<el-form-item
|
||||||
<el-input v-model="dataForm.confirmPassword" type="password" :placeholder="$t('user.confirmPassword')"></el-input>
|
prop="confirmPassword"
|
||||||
|
:label="$t('user.confirmPassword')"
|
||||||
|
:class="{ 'is-required': !dataForm.id }"
|
||||||
|
v-if="!dataForm.id"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="dataForm.confirmPassword"
|
||||||
|
type="password"
|
||||||
|
:placeholder="$t('user.confirmPassword')"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="realName" :label="$t('user.realName')">
|
<el-form-item prop="realName" :label="$t('user.realName')">
|
||||||
<el-input v-model="dataForm.realName" :placeholder="$t('user.realName')"></el-input>
|
<el-input
|
||||||
|
v-model="dataForm.realName"
|
||||||
|
:placeholder="$t('user.realName')"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="gender" :label="$t('user.gender')">
|
<el-form-item prop="gender" :label="$t('user.gender')">
|
||||||
<ren-radio-group v-model="dataForm.gender" dict-type="gender"></ren-radio-group>
|
<ren-radio-group
|
||||||
|
v-model="dataForm.gender"
|
||||||
|
dict-type="gender"
|
||||||
|
></ren-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="email" :label="$t('user.email')">
|
<el-form-item prop="email" :label="$t('user.email')">
|
||||||
<el-input v-model="dataForm.email" :placeholder="$t('user.email')"></el-input>
|
<el-input
|
||||||
|
v-model="dataForm.email"
|
||||||
|
:placeholder="$t('user.email')"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="mobile" :label="$t('user.mobile')">
|
<el-form-item prop="mobile" :label="$t('user.mobile')">
|
||||||
<el-input v-model="dataForm.mobile" :placeholder="$t('user.mobile')"></el-input>
|
<el-input
|
||||||
|
v-model="dataForm.mobile"
|
||||||
|
:placeholder="$t('user.mobile')"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="roleIdList" :label="$t('user.roleIdList')" class="role-list">
|
<el-form-item
|
||||||
<el-select v-model="dataForm.roleIdList" multiple :placeholder="$t('user.roleIdList')">
|
prop="roleIdList"
|
||||||
<el-option v-for="role in roleList" :key="role.id" :label="role.name" :value="role.id"></el-option>
|
:label="$t('user.roleIdList')"
|
||||||
|
class="role-list"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="dataForm.roleIdList"
|
||||||
|
multiple
|
||||||
|
:placeholder="$t('user.roleIdList')"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="role in roleList"
|
||||||
|
:key="role.id"
|
||||||
|
:label="role.name"
|
||||||
|
:value="role.id"
|
||||||
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="postIdList" :label="$t('user.postIdList')" class="role-list">
|
<!-- 所在岗位屏蔽掉,bug729 -->
|
||||||
|
<!-- <el-form-item prop="postIdList" :label="$t('user.postIdList')" class="role-list">
|
||||||
<el-select v-model="dataForm.postIdList" multiple :placeholder="$t('user.postIdList')">
|
<el-select v-model="dataForm.postIdList" multiple :placeholder="$t('user.postIdList')">
|
||||||
<el-option v-for="post in postList" :key="post.id" :label="post.postName" :value="post.id"></el-option>
|
<el-option v-for="post in postList" :key="post.id" :label="post.postName" :value="post.id"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item prop="status" :label="$t('user.status')" size="mini">
|
<el-form-item prop="status" :label="$t('user.status')" size="mini">
|
||||||
<el-radio-group v-model="dataForm.status">
|
<el-radio-group v-model="dataForm.status">
|
||||||
<el-radio :label="0">{{ $t('user.status0') }}</el-radio>
|
<el-radio :label="0">{{ $t('user.status0') }}</el-radio>
|
||||||
|
@ -44,7 +114,9 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
|
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
|
<el-button type="primary" @click="dataFormSubmitHandle()">{{
|
||||||
|
$t('confirm')
|
||||||
|
}}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
@ -93,8 +165,22 @@ export default {
|
||||||
const low = /^.*[a-z]+.*/
|
const low = /^.*[a-z]+.*/
|
||||||
const up = /^.*[A-Z]+.*/
|
const up = /^.*[A-Z]+.*/
|
||||||
const spe = /^.*[^a-zA-Z0-9]+.*/
|
const spe = /^.*[^a-zA-Z0-9]+.*/
|
||||||
console.log('包含数字', num.test(value), '包含字母', low.test(value), up.test(value), '包含特殊符号', spe.test(value))
|
console.log(
|
||||||
if (!(num.test(value) && (low.test(value) || up.test(value)) && spe.test(value))) {
|
'包含数字',
|
||||||
|
num.test(value),
|
||||||
|
'包含字母',
|
||||||
|
low.test(value),
|
||||||
|
up.test(value),
|
||||||
|
'包含特殊符号',
|
||||||
|
spe.test(value)
|
||||||
|
)
|
||||||
|
if (
|
||||||
|
!(
|
||||||
|
num.test(value) &&
|
||||||
|
(low.test(value) || up.test(value)) &&
|
||||||
|
spe.test(value)
|
||||||
|
)
|
||||||
|
) {
|
||||||
return callback(new Error(this.$t('validate.pwdStrength')))
|
return callback(new Error(this.$t('validate.pwdStrength')))
|
||||||
}
|
}
|
||||||
// if (!this.dataForm.id && !/\S/.test(value)) {
|
// if (!this.dataForm.id && !/\S/.test(value)) {
|
||||||
|
@ -113,38 +199,52 @@ export default {
|
||||||
}
|
}
|
||||||
var validateEmail = (rule, value, callback) => {
|
var validateEmail = (rule, value, callback) => {
|
||||||
if (value && !isEmail(value)) {
|
if (value && !isEmail(value)) {
|
||||||
return callback(new Error(this.$t('validate.format', { attr: this.$t('user.email') })))
|
return callback(
|
||||||
|
new Error(
|
||||||
|
this.$t('validate.format', { attr: this.$t('user.email') })
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
var validateMobile = (rule, value, callback) => {
|
var validateMobile = (rule, value, callback) => {
|
||||||
if (value && !isMobile(value)) {
|
if (value && !isMobile(value)) {
|
||||||
return callback(new Error(this.$t('validate.format', { attr: this.$t('user.mobile') })))
|
return callback(
|
||||||
|
new Error(
|
||||||
|
this.$t('validate.format', { attr: this.$t('user.mobile') })
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
username: [
|
username: [
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('validate.required'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
],
|
],
|
||||||
deptName: [
|
deptName: [
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'change' }
|
{
|
||||||
],
|
required: true,
|
||||||
password: [
|
message: this.$t('validate.required'),
|
||||||
{ validator: validatePassword, trigger: 'blur' }
|
trigger: 'change'
|
||||||
|
}
|
||||||
],
|
],
|
||||||
|
password: [{ validator: validatePassword, trigger: 'blur' }],
|
||||||
confirmPassword: [
|
confirmPassword: [
|
||||||
{ validator: validateConfirmPassword, trigger: 'blur' }
|
{ validator: validateConfirmPassword, trigger: 'blur' }
|
||||||
],
|
],
|
||||||
realName: [
|
realName: [
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('validate.required'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
],
|
],
|
||||||
email: [
|
email: [{ validator: validateEmail, trigger: 'blur' }],
|
||||||
{ validator: validateEmail, trigger: 'blur' }
|
mobile: [{ validator: validateMobile, trigger: 'blur' }]
|
||||||
],
|
|
||||||
mobile: [
|
|
||||||
{ validator: validateMobile, trigger: 'blur' }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -165,10 +265,7 @@ export default {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.dataForm.resetFields()
|
this.$refs.dataForm.resetFields()
|
||||||
this.roleIdListDefault = []
|
this.roleIdListDefault = []
|
||||||
Promise.all([
|
Promise.all([this.getRoleList(), this.getPostList()]).then(() => {
|
||||||
this.getRoleList(),
|
|
||||||
this.getPostList()
|
|
||||||
]).then(() => {
|
|
||||||
if (this.dataForm.id) {
|
if (this.dataForm.id) {
|
||||||
this.getInfo()
|
this.getInfo()
|
||||||
} else {
|
} else {
|
||||||
|
@ -193,79 +290,98 @@ export default {
|
||||||
},
|
},
|
||||||
// 获取角色列表
|
// 获取角色列表
|
||||||
getRoleList () {
|
getRoleList () {
|
||||||
return this.$http.get('/sys/role/list').then(({ data: res }) => {
|
return this.$http
|
||||||
if (res.code !== 0) {
|
.get('/sys/role/list')
|
||||||
return this.$message.error(res.msg)
|
.then(({ data: res }) => {
|
||||||
}
|
if (res.code !== 0) {
|
||||||
this.roleList = res.data
|
return this.$message.error(res.msg)
|
||||||
}).catch(() => {})
|
}
|
||||||
|
this.roleList = res.data
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
},
|
},
|
||||||
// 获取岗位列表
|
// 获取岗位列表
|
||||||
getPostList () {
|
getPostList () {
|
||||||
return this.$http.get('/sys/post/list').then(({ data: res }) => {
|
return this.$http
|
||||||
if (res.code !== 0) {
|
.get('/sys/post/list')
|
||||||
return this.$message.error(res.msg)
|
.then(({ data: res }) => {
|
||||||
}
|
if (res.code !== 0) {
|
||||||
this.postList = res.data
|
return this.$message.error(res.msg)
|
||||||
}).catch(() => {})
|
}
|
||||||
|
this.postList = res.data
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
},
|
},
|
||||||
// 获取信息
|
// 获取信息
|
||||||
getInfo () {
|
getInfo () {
|
||||||
this.$http.get(`/sys/user/${this.dataForm.id}`).then(({ data: res }) => {
|
this.$http
|
||||||
if (res.code !== 0) {
|
.get(`/sys/user/${this.dataForm.id}`)
|
||||||
return this.$message.error(res.msg)
|
.then(({ data: res }) => {
|
||||||
}
|
if (res.code !== 0) {
|
||||||
this.dataForm = {
|
return this.$message.error(res.msg)
|
||||||
...this.dataForm,
|
|
||||||
...res.data,
|
|
||||||
roleIdList: []
|
|
||||||
}
|
|
||||||
// 角色配置, 区分是否为默认角色
|
|
||||||
for (var i = 0; i < res.data.roleIdList.length; i++) {
|
|
||||||
if (this.roleList.filter(item => item.id === res.data.roleIdList[i])[0]) {
|
|
||||||
this.dataForm.roleIdList.push(res.data.roleIdList[i])
|
|
||||||
continue
|
|
||||||
}
|
}
|
||||||
this.roleIdListDefault.push(res.data.roleIdList[i])
|
this.dataForm = {
|
||||||
}
|
...this.dataForm,
|
||||||
}).catch(() => {})
|
...res.data,
|
||||||
|
roleIdList: []
|
||||||
|
}
|
||||||
|
// 角色配置, 区分是否为默认角色
|
||||||
|
for (var i = 0; i < res.data.roleIdList.length; i++) {
|
||||||
|
if (
|
||||||
|
this.roleList.filter(
|
||||||
|
(item) => item.id === res.data.roleIdList[i]
|
||||||
|
)[0]
|
||||||
|
) {
|
||||||
|
this.dataForm.roleIdList.push(res.data.roleIdList[i])
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
this.roleIdListDefault.push(res.data.roleIdList[i])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
},
|
},
|
||||||
// 表单提交
|
// 表单提交
|
||||||
dataFormSubmitHandle: debounce(function () {
|
dataFormSubmitHandle: debounce(
|
||||||
this.$refs.dataForm.validate((valid) => {
|
function () {
|
||||||
if (!valid) {
|
this.$refs.dataForm.validate((valid) => {
|
||||||
return false
|
if (!valid) {
|
||||||
}
|
return false
|
||||||
if (this.submitFlag) {
|
|
||||||
this.submitFlag = false
|
|
||||||
this.dataForm.password = Encrypt(this.dataForm.password)
|
|
||||||
if (this.dataForm.id) {
|
|
||||||
delete this.dataForm.password
|
|
||||||
}
|
}
|
||||||
this.$http[!this.dataForm.id ? 'post' : 'put']('/sys/user', {
|
if (this.submitFlag) {
|
||||||
...this.dataForm,
|
this.submitFlag = false
|
||||||
roleIdList: [
|
this.dataForm.password = Encrypt(this.dataForm.password)
|
||||||
...this.dataForm.roleIdList,
|
if (this.dataForm.id) {
|
||||||
...this.roleIdListDefault
|
delete this.dataForm.password
|
||||||
]
|
|
||||||
}).then(({ data: res }) => {
|
|
||||||
if (res.code !== 0) {
|
|
||||||
return this.$message.error(res.msg)
|
|
||||||
}
|
}
|
||||||
this.$message({
|
this.$http[!this.dataForm.id ? 'post' : 'put']('/sys/user', {
|
||||||
message: this.$t('prompt.success'),
|
...this.dataForm,
|
||||||
type: 'success',
|
roleIdList: [
|
||||||
duration: 500,
|
...this.dataForm.roleIdList,
|
||||||
onClose: () => {
|
...this.roleIdListDefault
|
||||||
this.visible = false
|
]
|
||||||
this.$emit('refreshDataList')
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
this.submitFlag = true
|
.then(({ data: res }) => {
|
||||||
}).catch(() => {})
|
if (res.code !== 0) {
|
||||||
}
|
return this.$message.error(res.msg)
|
||||||
})
|
}
|
||||||
}, 1000, { leading: true, trailing: false })
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
this.$emit('refreshDataList')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.submitFlag = true
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
1000,
|
||||||
|
{ leading: true, trailing: false }
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -9,7 +9,14 @@
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dataForm.username"
|
v-model="dataForm.username"
|
||||||
:placeholder="$t('user.username')"
|
placeholder="用户名"
|
||||||
|
clearable
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-input
|
||||||
|
v-model="dataForm.real_name"
|
||||||
|
placeholder="真实姓名"
|
||||||
clearable
|
clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -44,7 +51,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="getDataList()">{{
|
<el-button type="primary" @click="getDataList()">{{
|
||||||
$t("query")
|
$t('query')
|
||||||
}}</el-button>
|
}}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -52,7 +59,7 @@
|
||||||
v-if="$hasPermission('sys:user:save')"
|
v-if="$hasPermission('sys:user:save')"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="addOrUpdateHandle()"
|
@click="addOrUpdateHandle()"
|
||||||
>{{ $t("add") }}</el-button
|
>{{ $t('add') }}</el-button
|
||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -60,7 +67,7 @@
|
||||||
v-if="$hasPermission('sys:user:delete')"
|
v-if="$hasPermission('sys:user:delete')"
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="deleteHandle()"
|
@click="deleteHandle()"
|
||||||
>{{ $t("deleteBatch") }}</el-button
|
>{{ $t('deleteBatch') }}</el-button
|
||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -68,7 +75,7 @@
|
||||||
v-if="$hasPermission('sys:user:export')"
|
v-if="$hasPermission('sys:user:export')"
|
||||||
type="info"
|
type="info"
|
||||||
@click="exportHandle()"
|
@click="exportHandle()"
|
||||||
>{{ $t("export") }}</el-button
|
>{{ $t('export') }}</el-button
|
||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -96,6 +103,12 @@
|
||||||
header-align="center"
|
header-align="center"
|
||||||
align="center"
|
align="center"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="realName"
|
||||||
|
label="真实姓名"
|
||||||
|
header-align="center"
|
||||||
|
align="center"
|
||||||
|
></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="deptName"
|
prop="deptName"
|
||||||
:label="$t('user.deptName')"
|
:label="$t('user.deptName')"
|
||||||
|
@ -123,7 +136,7 @@
|
||||||
align="center"
|
align="center"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ $getDictLabel("gender", scope.row.gender) }}
|
{{ $getDictLabel('gender', scope.row.gender) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -135,10 +148,10 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{
|
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{
|
||||||
$t("user.status0")
|
$t('user.status0')
|
||||||
}}</el-tag>
|
}}</el-tag>
|
||||||
<el-tag v-else size="small" type="success">{{
|
<el-tag v-else size="small" type="success">{{
|
||||||
$t("user.status1")
|
$t('user.status1')
|
||||||
}}</el-tag>
|
}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -163,14 +176,14 @@
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click="addOrUpdateHandle(scope.row.id)"
|
@click="addOrUpdateHandle(scope.row.id)"
|
||||||
>{{ $t("update") }}</el-button
|
>{{ $t('update') }}</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="$hasPermission('sys:user:delete')"
|
v-if="$hasPermission('sys:user:delete')"
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click="deleteHandle(scope.row.id)"
|
@click="deleteHandle(scope.row.id)"
|
||||||
>{{ $t("delete") }}</el-button
|
>{{ $t('delete') }}</el-button
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -196,86 +209,87 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import mixinViewModule from "@/mixins/view-module";
|
import mixinViewModule from '@/mixins/view-module'
|
||||||
import AddOrUpdate from "./user-add-or-update";
|
import AddOrUpdate from './user-add-or-update'
|
||||||
import qs from "qs";
|
import qs from 'qs'
|
||||||
export default {
|
export default {
|
||||||
mixins: [mixinViewModule],
|
mixins: [mixinViewModule],
|
||||||
data() {
|
data () {
|
||||||
return {
|
return {
|
||||||
mixinViewModuleOptions: {
|
mixinViewModuleOptions: {
|
||||||
getDataListURL: "/sys/user/page",
|
getDataListURL: '/sys/user/page',
|
||||||
getDataListIsPage: true,
|
getDataListIsPage: true,
|
||||||
deleteURL: "/sys/user",
|
deleteURL: '/sys/user',
|
||||||
deleteIsBatch: true,
|
deleteIsBatch: true,
|
||||||
exportURL: "/sys/user/export",
|
exportURL: '/sys/user/export'
|
||||||
},
|
},
|
||||||
postList: [],
|
postList: [],
|
||||||
dataForm: {
|
dataForm: {
|
||||||
username: "",
|
username: '',
|
||||||
deptId: "",
|
deptId: '',
|
||||||
postId: "",
|
postId: '',
|
||||||
gender: "",
|
gender: ''
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
AddOrUpdate,
|
AddOrUpdate
|
||||||
},
|
},
|
||||||
created() {
|
created () {
|
||||||
this.getPostList();
|
this.getPostList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
reset() {
|
reset () {
|
||||||
this.$http
|
this.$http
|
||||||
.get(
|
.get(
|
||||||
this.mixinViewModuleOptions.getDataListURL +
|
this.mixinViewModuleOptions.getDataListURL +
|
||||||
"?" +
|
'?' +
|
||||||
qs.stringify({
|
qs.stringify({
|
||||||
page: 1,
|
page: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
username: "",
|
username: '',
|
||||||
deptId: "",
|
deptId: '',
|
||||||
postId: "",
|
postId: '',
|
||||||
gender: "",
|
gender: ''
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
this.dataForm.username = "";
|
this.dataForm.username = ''
|
||||||
this.dataForm.deptId = "";
|
this.dataForm.real_name = ''
|
||||||
this.dataForm.postId = "";
|
this.dataForm.deptId = ''
|
||||||
this.dataForm.gender = "";
|
this.dataForm.postId = ''
|
||||||
|
this.dataForm.gender = ''
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
this.dataList = [];
|
this.dataList = []
|
||||||
this.total = 0;
|
this.total = 0
|
||||||
return this.$message.error(res.msg);
|
return this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
|
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
|
||||||
? res.data.list
|
? res.data.list
|
||||||
: res.data;
|
: res.data
|
||||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||||
? res.data.total
|
? res.data.total
|
||||||
: 0;
|
: 0
|
||||||
if (this.mixinViewModuleOptions.requestCallback) {
|
if (this.mixinViewModuleOptions.requestCallback) {
|
||||||
this.mixinViewModuleOptions.requestCallback(res.data);
|
this.mixinViewModuleOptions.requestCallback(res.data)
|
||||||
}
|
}
|
||||||
this.dataListLoading = false;
|
this.dataListLoading = false
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
this.dataListLoading = false;
|
this.dataListLoading = false
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
getPostList() {
|
getPostList () {
|
||||||
this.$http
|
this.$http
|
||||||
.get("/sys/post/list")
|
.get('/sys/post/list')
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
return this.$message.error(res.msg);
|
return this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
this.postList = res.data;
|
this.postList = res.data
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {})
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -87,7 +87,8 @@ export default {
|
||||||
this.noData = true
|
this.noData = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for (let i = 0; i < 3; i++) {
|
const num = _arr.length < 3 ? _arr.length : 3
|
||||||
|
for (let i = 0; i < num; i++) {
|
||||||
const k = i + 1
|
const k = i + 1
|
||||||
this[`no${k}Obj`].name = _arr[i].name
|
this[`no${k}Obj`].name = _arr[i].name
|
||||||
this[`no${k}Obj`].count = _arr[i].count
|
this[`no${k}Obj`].count = _arr[i].count
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
"three.meshline": "^1.1.0",
|
"three.meshline": "^1.1.0",
|
||||||
"vue": "^3.1.4",
|
"vue": "^3.1.4",
|
||||||
"vue-router": "^4.0.10",
|
"vue-router": "^4.0.10",
|
||||||
"vue3-video-play": "^1.3.1-beta.6",
|
"vue3-video-play-emiyagm": "^1.3.1-beta.6.1",
|
||||||
"vuex": "^4.0.2"
|
"vuex": "^4.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
@ -75,6 +75,7 @@
|
||||||
"svg-sprite-loader": "^6.0.9",
|
"svg-sprite-loader": "^6.0.9",
|
||||||
"swiper": "^8.0.0",
|
"swiper": "^8.0.0",
|
||||||
"vab-config": "0.0.8",
|
"vab-config": "0.0.8",
|
||||||
|
"vue3-video-play-emiyagm": "^1.3.1-beta.6.1",
|
||||||
"webpackbar": "^5.0.0-3"
|
"webpackbar": "^5.0.0-3"
|
||||||
},
|
},
|
||||||
"gitHooks": {
|
"gitHooks": {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-03-29 16:45:25
|
* @Date: 2022-03-29 16:45:25
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-08-02 16:06:03
|
* @LastEditTime: 2022-08-08 09:19:02
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
@ -60,10 +60,12 @@
|
||||||
// window.SITE_CONFIG['websocketURL'] = '15.2.21.236:8888/renren-admin';
|
// window.SITE_CONFIG['websocketURL'] = '15.2.21.236:8888/renren-admin';
|
||||||
// window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
// window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
||||||
// window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
|
// window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
|
||||||
// window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796/';
|
// window.SITE_CONFIG['backUrl'] = 'http://localhost:8001';
|
||||||
// window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/';
|
// window.SITE_CONFIG['previewUrl'] = 'http://192.168.124.236:9796/';
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.239:8888/renren-admin';
|
// window.SITE_CONFIG['frontUrl'] = 'http://192.168.124.236:9796/document/#/devModelFile/';
|
||||||
window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
// window.SITE_CONFIG['apiURL'] = 'http://192.168.124.236:8888/renren-admin';
|
||||||
|
// window.SITE_CONFIG['websocketURL'] = '192.168.124.236:8888/renren-admin';
|
||||||
|
window.SITE_CONFIG['POI_URL'] = 'http://192.168.124.236:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
||||||
// 穿透版本
|
// 穿透版本
|
||||||
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';
|
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';
|
||||||
// window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/';
|
// window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/';
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2020-07-07 16:03:23
|
* @Date: 2020-07-07 16:03:23
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-08-02 10:18:58
|
* @LastEditTime: 2022-08-01 11:02:21
|
||||||
* @Description: 数据资源参数配置
|
* @Description: 数据资源参数配置
|
||||||
*/
|
*/
|
||||||
const newLocation = 'qingdao'
|
const newLocation = 'qingdao'
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2020-07-07 16:03:23
|
* @Date: 2020-07-07 16:03:23
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-07-28 16:57:43
|
* @LastEditTime: 2022-08-02 18:19:32
|
||||||
* @Description: 地图静态参数配置
|
* @Description: 地图静态参数配置
|
||||||
*/
|
*/
|
||||||
var _mapConfig = {}
|
var _mapConfig = {}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-05-06 11:12:00
|
* @Date: 2022-05-06 11:12:00
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-07-26 11:27:50
|
* @LastEditTime: 2022-08-03 10:13:59
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -68,4 +68,7 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
body {
|
||||||
|
font-size: 0.14rem;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -97,7 +97,7 @@ export function callTheTrendPort(start, end, params) {
|
||||||
export function totalCallsSnum(params) {
|
export function totalCallsSnum(params) {
|
||||||
return request({
|
return request({
|
||||||
url:
|
url:
|
||||||
`/metrics/api/v1/query?time=${params}&query=sum(apigateway_http_status)`,
|
`/gateway-monitor/getCallCount`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -275,3 +275,12 @@ export function AbilityToPullDownPages(params) {
|
||||||
params,
|
params,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 终止流程
|
||||||
|
export function endProcess(params) {
|
||||||
|
return request({
|
||||||
|
url: '/act/task/endProcess',
|
||||||
|
method: 'post',
|
||||||
|
params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 119 KiB |
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 128 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.5 KiB |
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-03-29 17:48:03
|
* @Date: 2022-03-29 17:48:03
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-07-22 16:03:23
|
* @LastEditTime: 2022-08-06 15:00:49
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
*/
|
*/
|
||||||
import { createApp } from 'vue'
|
import { createApp } from 'vue'
|
||||||
|
@ -16,8 +16,8 @@ import 'ant-design-vue/dist/antd.css'
|
||||||
import '@/vab'
|
import '@/vab'
|
||||||
import * as echarts from 'echarts'
|
import * as echarts from 'echarts'
|
||||||
import * as moment from 'moment'
|
import * as moment from 'moment'
|
||||||
import vue3videoPlay from 'vue3-video-play' // 引入组件
|
import vue3videoPlay from 'vue3-video-play-emiyagm' // 引入组件
|
||||||
import 'vue3-video-play/dist/style.css' // 引入css
|
import 'vue3-video-play-emiyagm/dist/style.css' // 引入css
|
||||||
import ElementPlus from 'element-plus'
|
import ElementPlus from 'element-plus'
|
||||||
import 'element-plus/dist/index.css'
|
import 'element-plus/dist/index.css'
|
||||||
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
|
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
|
||||||
|
|
|
@ -13,10 +13,16 @@
|
||||||
backgroundImage: `url(${item.photo}) `,
|
backgroundImage: `url(${item.photo}) `,
|
||||||
}"
|
}"
|
||||||
></div>
|
></div>
|
||||||
<div class="name">{{ item.demandSubject }}</div>
|
<a-tooltip>
|
||||||
<div class="text">
|
<template #title>{{ item.demandSubject }}</template>
|
||||||
{{ item.demandDetails }}
|
<div class="name">{{ item.demandSubject }}</div>
|
||||||
</div>
|
</a-tooltip>
|
||||||
|
<a-tooltip>
|
||||||
|
<template #title>{{ item.demandDetails }}</template>
|
||||||
|
<div class="text">
|
||||||
|
{{ item.demandDetails }}
|
||||||
|
</div>
|
||||||
|
</a-tooltip>
|
||||||
<div class="reply">回复量:{{ item.commentCount }}</div>
|
<div class="reply">回复量:{{ item.commentCount }}</div>
|
||||||
<div class="view-details" @click="viewDetails(item.id)">查看详情</div>
|
<div class="view-details" @click="viewDetails(item.id)">查看详情</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -165,6 +171,10 @@
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #212121;
|
color: #212121;
|
||||||
margin-bottom: 24px;
|
margin-bottom: 24px;
|
||||||
|
width: 226px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
.text {
|
.text {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -175,6 +185,10 @@
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #666;
|
color: #666;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
}
|
}
|
||||||
.view-details {
|
.view-details {
|
||||||
width: 75px;
|
width: 75px;
|
||||||
|
|
|
@ -64,14 +64,14 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<!-- 分页 -->
|
<!-- 分页 -->
|
||||||
<span>共{{ resourceTotal }}条</span>
|
<!-- <span>共{{ resourceTotal }}条</span>
|
||||||
<a-pagination
|
<a-pagination
|
||||||
v-model:current="currentPage"
|
v-model:current="currentPage"
|
||||||
v-model:pageSize="currentPageSize"
|
v-model:pageSize="currentPageSize"
|
||||||
show-quick-jumper
|
show-quick-jumper
|
||||||
:total="resourceTotal"
|
:total="resourceTotal"
|
||||||
@change="pageChange"
|
@change="pageChange"
|
||||||
/>
|
/> -->
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
@ -215,7 +215,7 @@
|
||||||
orderField: 'create_date',
|
orderField: 'create_date',
|
||||||
orderType: 'DESC',
|
orderType: 'DESC',
|
||||||
pageNum: currentPage.value,
|
pageNum: currentPage.value,
|
||||||
pageSize: 3,
|
pageSize: 100,
|
||||||
type: '赋能案例',
|
type: '赋能案例',
|
||||||
}
|
}
|
||||||
pageWithAttrs(params).then((res) => {
|
pageWithAttrs(params).then((res) => {
|
||||||
|
@ -367,14 +367,15 @@
|
||||||
.content {
|
.content {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: space-around;
|
||||||
padding-top: 40px;
|
flex-wrap: wrap;
|
||||||
|
padding: 40px 300px 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
.contenBox {
|
.contenBox {
|
||||||
// width: 430px;
|
// width: 430px;
|
||||||
padding: 30px;
|
padding: 30px;
|
||||||
border: 1px solid #e4e6f5;
|
border: 1px solid #e4e6f5;
|
||||||
margin-right: 30px;
|
margin-bottom: 20px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
box-shadow: 5px 5px 20px 0 #f2f3fb;
|
box-shadow: 5px 5px 20px 0 #f2f3fb;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-19 10:15:33
|
* @Date: 2022-06-19 10:15:33
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-06-19 18:19:58
|
* @LastEditTime: 2022-08-06 16:21:24
|
||||||
* @Description: 能力云图-组件服务
|
* @Description: 能力云图-组件服务
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -409,11 +409,16 @@
|
||||||
const TotalCallsAPI = () => {
|
const TotalCallsAPI = () => {
|
||||||
const end = Date.parse(new Date()) / 1000
|
const end = Date.parse(new Date()) / 1000
|
||||||
totalCallsSnum(end).then((res) => {
|
totalCallsSnum(end).then((res) => {
|
||||||
debugger
|
snum.value[1].num = Number(res.data.data)
|
||||||
snum.value[1].num = res.data.data.result[0].value[1]
|
|
||||||
totalCallsSnum2(end).then((resSon) => {
|
totalCallsSnum2(end).then((resSon) => {
|
||||||
snum.value[2].num =
|
if (snum.value[1].num === 0) {
|
||||||
(resSon.data.data.result[0].value[1] / snum.value[1].num) * 100 + '%'
|
num.value[2].num = '100%'
|
||||||
|
} else {
|
||||||
|
snum.value[2].num =
|
||||||
|
parseInt(
|
||||||
|
(resSon.data.data.result[0].value[1] / snum.value[1].num) * 100
|
||||||
|
) + '%'
|
||||||
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -421,7 +426,10 @@
|
||||||
timeSwitch(timeSwitchindex.value)
|
timeSwitch(timeSwitchindex.value)
|
||||||
NumberOfComponentServices()
|
NumberOfComponentServices()
|
||||||
ranking(dataclick.value)
|
ranking(dataclick.value)
|
||||||
TotalCallsAPI()
|
// 西海岸版本不调用API总数
|
||||||
|
if (!xinhaianIsShow) {
|
||||||
|
TotalCallsAPI()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
init()
|
init()
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-13 10:22:27
|
* @Date: 2022-06-13 10:22:27
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-08-02 11:28:00
|
* @LastEditTime: 2022-08-03 10:40:28
|
||||||
* @Description: 算法上架
|
* @Description: 算法上架
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -841,25 +841,25 @@
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.box {
|
.box {
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 64px;
|
top: 0.64rem;
|
||||||
margin: 15px 400px;
|
margin: 0.15rem 4rem;
|
||||||
padding: 10px;
|
padding: 0.1rem;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
.header {
|
.header {
|
||||||
font-size: 28px;
|
font-size: 0.28rem;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
.vue-box {
|
.vue-box {
|
||||||
padding: 0 100px;
|
padding: 0 1rem;
|
||||||
}
|
}
|
||||||
.top {
|
.top {
|
||||||
margin: 10px 20px 0;
|
margin: 0.1rem 0.2rem 0;
|
||||||
padding: 15px 30px;
|
padding: 0.15rem 0.3rem;
|
||||||
background: #edf4fc;
|
background: #edf4fc;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
div {
|
div {
|
||||||
font-size: 18px;
|
font-size: 0.18rem;
|
||||||
color: #999;
|
color: #999;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -868,26 +868,26 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 45px;
|
width: 0.45rem;
|
||||||
height: 45px;
|
height: 0.45rem;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
border: 1px solid rgb(214, 214, 214);
|
border: 0.01rem solid rgb(214, 214, 214);
|
||||||
margin-right: 10px;
|
margin-right: 0.1rem;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
span {
|
span {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 30px;
|
width: 0.3rem;
|
||||||
height: 30px;
|
height: 0.3rem;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
border: 1px solid #999;
|
border: 0.01rem solid #999;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.line {
|
.line {
|
||||||
margin-left: 10px;
|
margin-left: 0.1rem;
|
||||||
width: 130px;
|
width: 1.3rem;
|
||||||
height: 1px;
|
height: 0.01rem;
|
||||||
background: #999;
|
background: #999;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -896,10 +896,10 @@
|
||||||
.bg-box {
|
.bg-box {
|
||||||
background: #9ccefa;
|
background: #9ccefa;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
border: 1px solid #9ccefa;
|
border: 0.01rem solid #9ccefa;
|
||||||
span {
|
span {
|
||||||
background: #0087ff;
|
background: #0087ff;
|
||||||
border: 1px solid #0087ff;
|
border: 0.01rem solid #0087ff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.line {
|
.line {
|
||||||
|
@ -909,17 +909,18 @@
|
||||||
.btn {
|
.btn {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
padding: 10px 350px 0;
|
padding: 0.1rem 3.5rem 0;
|
||||||
button {
|
button {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
width: 80px;
|
font-size: 0.14rem;
|
||||||
height: 35px;
|
width: 0.8rem;
|
||||||
|
height: 0.35rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
border: 1px solid #9ccefa;
|
border: 0.01rem solid #9ccefa;
|
||||||
span {
|
span {
|
||||||
background: #0087ff;
|
background: #0087ff;
|
||||||
border: 1px solid #0087ff;
|
border: 0.01rem solid #0087ff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.line {
|
.line {
|
||||||
|
@ -940,15 +941,16 @@
|
||||||
.btn {
|
.btn {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding: 10px 350px 0;
|
padding: 0.1rem 3.5rem 0;
|
||||||
button {
|
button {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
width: 80px;
|
font-size: 0.14rem;
|
||||||
height: 35px;
|
width: 0.8rem;
|
||||||
|
height: 0.35rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 6px;
|
border-radius: 0.06rem;
|
||||||
background: #0087ff;
|
background: #0087ff;
|
||||||
}
|
}
|
||||||
button:nth-of-type(1) {
|
button:nth-of-type(1) {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-13 10:22:27
|
* @Date: 2022-06-13 10:22:27
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-08-02 11:40:41
|
* @LastEditTime: 2022-08-04 16:11:50
|
||||||
* @Description: 应用上架
|
* @Description: 应用上架
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
v-else-if="showView === '部署与应用'"
|
v-else-if="showView === '部署与应用'"
|
||||||
:refData="refData"
|
:refData="refData"
|
||||||
:dataFrom="dataFrom"
|
:dataFrom="dataFrom"
|
||||||
:externalField="['共享类型']"
|
:externalField="['共享类型', '访问地址']"
|
||||||
:configure="bs"
|
:configure="bs"
|
||||||
@submit="submit()"
|
@submit="submit()"
|
||||||
@back="back()"
|
@back="back()"
|
||||||
|
@ -299,7 +299,6 @@
|
||||||
'共享条件',
|
'共享条件',
|
||||||
'应用名称',
|
'应用名称',
|
||||||
'应用描述',
|
'应用描述',
|
||||||
'应用状态',
|
|
||||||
'应用类型',
|
'应用类型',
|
||||||
])
|
])
|
||||||
const notFilled = ref([])
|
const notFilled = ref([])
|
||||||
|
@ -347,15 +346,15 @@
|
||||||
) {
|
) {
|
||||||
notFilled.value.push('应用领域')
|
notFilled.value.push('应用领域')
|
||||||
}
|
}
|
||||||
if (
|
// if (
|
||||||
!dataFrom.value.infoList.filter(
|
// !dataFrom.value.infoList.filter(
|
||||||
(val) => val.attrType === '应用状态'
|
// (val) => val.attrType === '应用状态'
|
||||||
)[0] ||
|
// )[0] ||
|
||||||
!dataFrom.value.infoList.filter((val) => val.attrType === '应用状态')[0]
|
// !dataFrom.value.infoList.filter((val) => val.attrType === '应用状态')[0]
|
||||||
.attrValue
|
// .attrValue
|
||||||
) {
|
// ) {
|
||||||
notFilled.value.push('应用状态')
|
// notFilled.value.push('应用状态')
|
||||||
}
|
// }
|
||||||
if (
|
if (
|
||||||
!dataFrom.value.infoList.filter(
|
!dataFrom.value.infoList.filter(
|
||||||
(val) => val.attrType === '应用类型'
|
(val) => val.attrType === '应用类型'
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-17 14:11:08
|
* @Date: 2022-06-17 14:11:08
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-08-02 11:31:43
|
* @LastEditTime: 2022-08-03 11:47:41
|
||||||
* @Description: 上架
|
* @Description: 上架
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -86,6 +86,7 @@
|
||||||
<template v-if="attr.type == 'input2'">
|
<template v-if="attr.type == 'input2'">
|
||||||
<a-input
|
<a-input
|
||||||
disabled
|
disabled
|
||||||
|
:maxLength="1000"
|
||||||
v-model:value="val[attr.field]"
|
v-model:value="val[attr.field]"
|
||||||
:placeholder="'请填写' + attr.name"
|
:placeholder="'请填写' + attr.name"
|
||||||
/>
|
/>
|
||||||
|
@ -144,6 +145,7 @@
|
||||||
/>
|
/>
|
||||||
<template v-if="val.type == 'input2'">
|
<template v-if="val.type == 'input2'">
|
||||||
<a-input
|
<a-input
|
||||||
|
:maxLength="1000"
|
||||||
v-model:value="val.note1"
|
v-model:value="val.note1"
|
||||||
:placeholder="'请填写' + val.name"
|
:placeholder="'请填写' + val.name"
|
||||||
/>
|
/>
|
||||||
|
@ -228,6 +230,7 @@
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
</div>
|
</div>
|
||||||
<a-input
|
<a-input
|
||||||
|
:maxLength="1000"
|
||||||
v-if="item.type == 'input' && item.name.indexOf('名称') == -1"
|
v-if="item.type == 'input' && item.name.indexOf('名称') == -1"
|
||||||
v-model:value="item.note1"
|
v-model:value="item.note1"
|
||||||
:placeholder="'请输入' + item.name"
|
:placeholder="'请输入' + item.name"
|
||||||
|
@ -246,9 +249,11 @@
|
||||||
v-else-if="item.type == 'radio'"
|
v-else-if="item.type == 'radio'"
|
||||||
v-model:value="item.note1"
|
v-model:value="item.note1"
|
||||||
:options="item.options"
|
:options="item.options"
|
||||||
|
@change="changeIiem(item.name, item.note1)"
|
||||||
/>
|
/>
|
||||||
<a-input
|
<a-input
|
||||||
v-else-if="item.type == 'AbilityType'"
|
v-else-if="item.type == 'AbilityType'"
|
||||||
|
:maxLength="1000"
|
||||||
v-model:value="item.note1"
|
v-model:value="item.note1"
|
||||||
:placeholder="'请输入' + item.name"
|
:placeholder="'请输入' + item.name"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
|
@ -256,6 +261,7 @@
|
||||||
<a-input
|
<a-input
|
||||||
v-else-if="item.type == 'ComponentType'"
|
v-else-if="item.type == 'ComponentType'"
|
||||||
v-model:value="item.note1"
|
v-model:value="item.note1"
|
||||||
|
:maxLength="1000"
|
||||||
:placeholder="'请输入' + item.name"
|
:placeholder="'请输入' + item.name"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
|
@ -1222,6 +1228,7 @@
|
||||||
|
|
||||||
.submit {
|
.submit {
|
||||||
margin-top: 0.4rem;
|
margin-top: 0.4rem;
|
||||||
|
font-size: 0.14rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
|
||||||
|
|
|
@ -299,7 +299,7 @@
|
||||||
if (res.data.code == '0') {
|
if (res.data.code == '0') {
|
||||||
demandCommentApply({ id: res.data.data.id }).then((res1) => {
|
demandCommentApply({ id: res.data.data.id }).then((res1) => {
|
||||||
if (res1.data.code == '0') {
|
if (res1.data.code == '0') {
|
||||||
message.success('提交评价成功!')
|
message.success('提交评论成功,请注意查看消息通知!')
|
||||||
myComment.value = ''
|
myComment.value = ''
|
||||||
evaluateList()
|
evaluateList()
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="algorithm-advantage" v-if="flag">
|
<div class="algorithm-advantage" v-if="flag">
|
||||||
<detals-title title="算法优势" type="ADVANTGE"></detals-title>
|
<detals-title title="算法优势" type="ADVANTGE"></detals-title>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<div class="top">
|
<div class="top" v-if="data.length < 3">
|
||||||
<div v-for="val in data" :key="val.id" class="item">
|
<div v-for="val in data" :key="val.id" class="item">
|
||||||
<div class="icon" :class="val.icon"></div>
|
<div class="icon" :class="val.icon"></div>
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
|
@ -22,17 +22,44 @@
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="top" v-else>
|
||||||
|
<swiper
|
||||||
|
:slidesPerView="3"
|
||||||
|
:spaceBetween="30"
|
||||||
|
:pagination="{ clickable: true }"
|
||||||
|
:modules="modules"
|
||||||
|
class="mySwiper2"
|
||||||
|
@swiper="onSwiper"
|
||||||
|
@slideChange="onSlideChange"
|
||||||
|
>
|
||||||
|
<swiper-slide v-for="val in data" :key="val.id" class="item">
|
||||||
|
<div class="icon" :class="val.icon"></div>
|
||||||
|
<a-tooltip>
|
||||||
|
<template #title>{{ val.title }}</template>
|
||||||
|
<div class="title">{{ val.title }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
<a-tooltip>
|
||||||
|
<template #title>{{ val.text }}</template>
|
||||||
|
<div class="text">{{ val.text }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</swiper-slide>
|
||||||
|
</swiper>
|
||||||
|
</div>
|
||||||
<div class="bottom"></div>
|
<div class="bottom"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, defineProps, watch } from 'vue'
|
import { ref, defineProps, watch } from 'vue'
|
||||||
|
import { Navigation, Pagination, Scrollbar, A11y } from 'swiper'
|
||||||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle.vue'
|
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle.vue'
|
||||||
|
import { Swiper, SwiperSlide } from 'swiper/vue/swiper-vue.js'
|
||||||
|
import 'swiper/swiper-bundle.min.css'
|
||||||
const data = ref([])
|
const data = ref([])
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dataList: { type: Object, default: null },
|
dataList: { type: Object, default: null },
|
||||||
})
|
})
|
||||||
|
const modules = ref([Pagination])
|
||||||
const flag = ref(true)
|
const flag = ref(true)
|
||||||
if (props.dataList.infoList) {
|
if (props.dataList.infoList) {
|
||||||
let obj = props.dataList.infoList.filter(
|
let obj = props.dataList.infoList.filter(
|
||||||
|
@ -43,10 +70,10 @@
|
||||||
} else {
|
} else {
|
||||||
data.value = []
|
data.value = []
|
||||||
let arr = JSON.parse(obj.attrValue)
|
let arr = JSON.parse(obj.attrValue)
|
||||||
if (arr.length > 3) {
|
// if (arr.length > 3) {
|
||||||
// 截取数组前三位
|
// // 截取数组前三位
|
||||||
arr = arr.splice(0, 3)
|
// arr = arr.splice(0, 3)
|
||||||
}
|
// }
|
||||||
arr.forEach((item, index) => {
|
arr.forEach((item, index) => {
|
||||||
data.value.push({
|
data.value.push({
|
||||||
title: item.name,
|
title: item.name,
|
||||||
|
@ -67,10 +94,10 @@
|
||||||
} else {
|
} else {
|
||||||
data.value = []
|
data.value = []
|
||||||
let arr = JSON.parse(obj.attrValue)
|
let arr = JSON.parse(obj.attrValue)
|
||||||
if (arr.length > 3) {
|
// if (arr.length > 3) {
|
||||||
// 截取数组前三位
|
// // 截取数组前三位
|
||||||
arr = arr.splice(0, 3)
|
// arr = arr.splice(0, 3)
|
||||||
}
|
// }
|
||||||
arr.forEach((item, index) => {
|
arr.forEach((item, index) => {
|
||||||
data.value.push({
|
data.value.push({
|
||||||
title: item.name,
|
title: item.name,
|
||||||
|
@ -90,6 +117,7 @@
|
||||||
.main {
|
.main {
|
||||||
margin-top: 40px;
|
margin-top: 40px;
|
||||||
.top {
|
.top {
|
||||||
|
width: 13.14rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="application-associated-ability" v-if="flag">
|
<div class="application-associated-ability" v-if="flag">
|
||||||
<detals-title title="关联应用" type="ASSOCIATED"></detals-title>
|
<detals-title title="来源应用" type="ASSOCIATED"></detals-title>
|
||||||
<div
|
<div
|
||||||
class="application-associated-ability-main"
|
class="application-associated-ability-main"
|
||||||
v-if="dataFrom[0].dataList.length < 4"
|
v-if="dataFrom[0].dataList.length < 4"
|
||||||
|
|
|
@ -64,18 +64,18 @@
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
// 根据能力id查询是否存在关联应用
|
// 根据能力id查询是否存在来源应用
|
||||||
if (keyId) {
|
if (keyId) {
|
||||||
queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
|
queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
|
||||||
console.log('ressssssss', res)
|
console.log('ressssssss', res)
|
||||||
if (res.data.data.length > 0) {
|
if (res.data.data.length > 0) {
|
||||||
// 存在关联应用时在导航栏加入关联应用
|
// 存在来源应用时在导航栏加入来源应用
|
||||||
navList.value.unshift({
|
navList.value.unshift({
|
||||||
name: '关联应用',
|
name: '来源应用',
|
||||||
key: 'algorithm-associated-ability',
|
key: 'algorithm-associated-ability',
|
||||||
show: true,
|
show: true,
|
||||||
})
|
})
|
||||||
// list.value.push('关联应用')
|
// list.value.push('来源应用')
|
||||||
console.log('navList', navList)
|
console.log('navList', navList)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -130,7 +130,7 @@
|
||||||
if (list.value.length > 0) {
|
if (list.value.length > 0) {
|
||||||
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
||||||
select.value = navList.value.filter(
|
select.value = navList.value.filter(
|
||||||
(item) => (item.name === '关联应用') | (item.name === list.value[0])
|
(item) => (item.name === '来源应用') | (item.name === list.value[0])
|
||||||
)[0].key
|
)[0].key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,7 +171,7 @@
|
||||||
list.value.push('使用方式')
|
list.value.push('使用方式')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
list.value.unshift('关联应用')
|
list.value.unshift('来源应用')
|
||||||
navList.value.forEach((item) => {
|
navList.value.forEach((item) => {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
if (list.value.indexOf(item.name) > -1) {
|
if (list.value.indexOf(item.name) > -1) {
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
})
|
})
|
||||||
const select = ref('application-associated-ability')
|
const select = ref('application-associated-ability')
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
// 根据能力id查询是否存在关联应用
|
// 根据能力id查询是否存在关联组件
|
||||||
if (keyId) {
|
if (keyId) {
|
||||||
let params = {
|
let params = {
|
||||||
keyId: keyId,
|
keyId: keyId,
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
queryPartAppByKeyId(params).then((res) => {
|
queryPartAppByKeyId(params).then((res) => {
|
||||||
console.log('ressssssss', res)
|
console.log('ressssssss', res)
|
||||||
if (res.data.data.length != 0) {
|
if (res.data.data.length != 0) {
|
||||||
// 存在关联应用时在导航栏加入关联应用
|
// 存在关联组件时在导航栏加入关联组件
|
||||||
navList.value.unshift({
|
navList.value.unshift({
|
||||||
name: '关联组件',
|
name: '关联组件',
|
||||||
key: 'application-associated-ability',
|
key: 'application-associated-ability',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="application-associated-ability" v-if="flag">
|
<div class="application-associated-ability" v-if="flag">
|
||||||
<detals-title title="关联应用" type="ASSOCIATED"></detals-title>
|
<detals-title title="来源应用" type="ASSOCIATED"></detals-title>
|
||||||
<div
|
<div
|
||||||
class="application-associated-ability-main"
|
class="application-associated-ability-main"
|
||||||
v-if="dataFrom[0].dataList.length < 4"
|
v-if="dataFrom[0].dataList.length < 4"
|
||||||
|
|
|
@ -62,18 +62,18 @@
|
||||||
})
|
})
|
||||||
const select = ref('business-associated-ability')
|
const select = ref('business-associated-ability')
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
// 根据能力id查询是否存在关联应用
|
// 根据能力id查询是否存在来源应用
|
||||||
if (keyId) {
|
if (keyId) {
|
||||||
queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
|
queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
|
||||||
console.log('ressssssss', res)
|
console.log('ressssssss', res)
|
||||||
if (res.data.data.length > 0) {
|
if (res.data.data.length > 0) {
|
||||||
// 存在关联应用时在导航栏加入关联应用
|
// 存在来源应用时在导航栏加入来源应用
|
||||||
navList.value.unshift({
|
navList.value.unshift({
|
||||||
name: '关联应用',
|
name: '来源应用',
|
||||||
key: 'business-associated-ability',
|
key: 'business-associated-ability',
|
||||||
show: true,
|
show: true,
|
||||||
})
|
})
|
||||||
// list.value.push('关联应用')
|
// list.value.push('来源应用')
|
||||||
console.log('navList', navList)
|
console.log('navList', navList)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -85,7 +85,7 @@
|
||||||
if (props.dataList.infoList) {
|
if (props.dataList.infoList) {
|
||||||
list.value = []
|
list.value = []
|
||||||
let arr = [
|
let arr = [
|
||||||
'关联应用',
|
'来源应用',
|
||||||
'组件视频介绍',
|
'组件视频介绍',
|
||||||
'功能介绍',
|
'功能介绍',
|
||||||
'应用场景',
|
'应用场景',
|
||||||
|
@ -110,12 +110,12 @@
|
||||||
list.value.push('组件展示')
|
list.value.push('组件展示')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
list.value.unshift('关联应用')
|
list.value.unshift('来源应用')
|
||||||
list.value.push('使用方式')
|
list.value.push('使用方式')
|
||||||
navList.value.forEach((item) => {
|
navList.value.forEach((item) => {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
if (list.value.indexOf(item.name) > -1) {
|
if (list.value.indexOf(item.name) > -1) {
|
||||||
if (item.name == '关联应用') {
|
if (item.name == '来源应用') {
|
||||||
if (props.associatedComponents[0].dataList.length != 0) {
|
if (props.associatedComponents[0].dataList.length != 0) {
|
||||||
item.show = true
|
item.show = true
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@
|
||||||
if (list.value.length > 0) {
|
if (list.value.length > 0) {
|
||||||
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
||||||
select.value = navList.value.filter(
|
select.value = navList.value.filter(
|
||||||
(item) => (item.name === '关联应用') | (item.name === list.value[0])
|
(item) => (item.name === '来源应用') | (item.name === list.value[0])
|
||||||
)[0].key
|
)[0].key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -145,7 +145,7 @@
|
||||||
if (val) {
|
if (val) {
|
||||||
list.value = []
|
list.value = []
|
||||||
let arr = [
|
let arr = [
|
||||||
'关联应用',
|
'来源应用',
|
||||||
'组件视频介绍',
|
'组件视频介绍',
|
||||||
'功能介绍',
|
'功能介绍',
|
||||||
'应用场景',
|
'应用场景',
|
||||||
|
@ -171,12 +171,12 @@
|
||||||
list.value.push('组件展示')
|
list.value.push('组件展示')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
list.value.unshift('关联应用')
|
list.value.unshift('来源应用')
|
||||||
list.value.push('使用方式')
|
list.value.push('使用方式')
|
||||||
navList.value.forEach((item) => {
|
navList.value.forEach((item) => {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
if (list.value.indexOf(item.name) > -1) {
|
if (list.value.indexOf(item.name) > -1) {
|
||||||
if (item.name == '关联应用') {
|
if (item.name == '来源应用') {
|
||||||
if (props.associatedComponents[0].dataList.length != 0) {
|
if (props.associatedComponents[0].dataList.length != 0) {
|
||||||
item.show = true
|
item.show = true
|
||||||
}
|
}
|
||||||
|
@ -189,7 +189,7 @@
|
||||||
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
||||||
select.value = navList.value.filter(
|
select.value = navList.value.filter(
|
||||||
(item) =>
|
(item) =>
|
||||||
(item.name === '关联应用') | (item.name === list.value[0])
|
(item.name === '来源应用') | (item.name === list.value[0])
|
||||||
)[0].key
|
)[0].key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -210,7 +210,6 @@
|
||||||
let obj = props.dataList.infoList.filter(
|
let obj = props.dataList.infoList.filter(
|
||||||
(item) => item.attrType === '使用手册'
|
(item) => item.attrType === '使用手册'
|
||||||
)[0]
|
)[0]
|
||||||
console.log('dataFrom.value.link', obj.attrValue)
|
|
||||||
if (obj) {
|
if (obj) {
|
||||||
window.open(
|
window.open(
|
||||||
window.SITE_CONFIG.previewUrl +
|
window.SITE_CONFIG.previewUrl +
|
||||||
|
@ -221,7 +220,7 @@
|
||||||
message.config({
|
message.config({
|
||||||
top: '100px', // 距离顶部的位置
|
top: '100px', // 距离顶部的位置
|
||||||
})
|
})
|
||||||
message.error('暂未上传使用手册')
|
message.error('暂未开放新手指引')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="application-associated-ability" v-if="flag">
|
<div class="application-associated-ability" v-if="flag">
|
||||||
<detals-title title="关联应用" type="ASSOCIATED"></detals-title>
|
<detals-title title="来源应用" type="ASSOCIATED"></detals-title>
|
||||||
<div
|
<div
|
||||||
class="application-associated-ability-main"
|
class="application-associated-ability-main"
|
||||||
v-if="dataFrom[0].dataList.length < 4"
|
v-if="dataFrom[0].dataList.length < 4"
|
||||||
|
|
|
@ -65,18 +65,18 @@
|
||||||
})
|
})
|
||||||
const select = ref('developer-associated-ability')
|
const select = ref('developer-associated-ability')
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
// 根据能力id查询是否存在关联应用
|
// 根据能力id查询是否存在来源应用
|
||||||
if (keyId) {
|
if (keyId) {
|
||||||
queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
|
queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
|
||||||
console.log('ressssssss', res)
|
console.log('ressssssss', res)
|
||||||
if (res.data.data.length > 0) {
|
if (res.data.data.length > 0) {
|
||||||
// 存在关联应用时在导航栏加入关联应用
|
// 存在来源应用时在导航栏加入来源应用
|
||||||
navList.value.unshift({
|
navList.value.unshift({
|
||||||
name: '关联应用',
|
name: '来源应用',
|
||||||
key: 'developer-associated-ability',
|
key: 'developer-associated-ability',
|
||||||
show: true,
|
show: true,
|
||||||
})
|
})
|
||||||
// list.value.push('关联应用')
|
// list.value.push('来源应用')
|
||||||
console.log('navList', navList)
|
console.log('navList', navList)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -101,12 +101,12 @@
|
||||||
list.value.push('组件试用')
|
list.value.push('组件试用')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
list.value.unshift('关联应用')
|
list.value.unshift('来源应用')
|
||||||
list.value.push('使用方式')
|
list.value.push('使用方式')
|
||||||
navList.value.forEach((item) => {
|
navList.value.forEach((item) => {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
if (list.value.indexOf(item.name) > -1) {
|
if (list.value.indexOf(item.name) > -1) {
|
||||||
// if (item.name == '关联应用') {
|
// if (item.name == '来源应用') {
|
||||||
// if (props.associatedComponents[0].dataList.length != 0) {
|
// if (props.associatedComponents[0].dataList.length != 0) {
|
||||||
// item.show = true
|
// item.show = true
|
||||||
// }
|
// }
|
||||||
|
@ -117,7 +117,7 @@
|
||||||
})
|
})
|
||||||
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
||||||
select.value = navList.value.filter(
|
select.value = navList.value.filter(
|
||||||
(item) => (item.name === '关联应用') | (item.name === list.value[0])
|
(item) => (item.name === '来源应用') | (item.name === list.value[0])
|
||||||
// (item) => item.name === list.value[0]
|
// (item) => item.name === list.value[0]
|
||||||
)[0].key
|
)[0].key
|
||||||
}
|
}
|
||||||
|
@ -151,13 +151,13 @@
|
||||||
list.value.push('组件试用')
|
list.value.push('组件试用')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
list.value.unshift('关联应用')
|
list.value.unshift('来源应用')
|
||||||
// list.value.push('组件试用')
|
// list.value.push('组件试用')
|
||||||
list.value.push('使用方式')
|
list.value.push('使用方式')
|
||||||
navList.value.forEach((item) => {
|
navList.value.forEach((item) => {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
if (list.value.indexOf(item.name) > -1) {
|
if (list.value.indexOf(item.name) > -1) {
|
||||||
// if (item.name == '关联应用') {
|
// if (item.name == '来源应用') {
|
||||||
// if (props.associatedComponents[0].dataList.length != 0) {
|
// if (props.associatedComponents[0].dataList.length != 0) {
|
||||||
// item.show = true
|
// item.show = true
|
||||||
// }
|
// }
|
||||||
|
@ -170,7 +170,7 @@
|
||||||
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
||||||
select.value = navList.value.filter(
|
select.value = navList.value.filter(
|
||||||
(item) =>
|
(item) =>
|
||||||
(item.name === '关联应用') | (item.name === list.value[0])
|
(item.name === '来源应用') | (item.name === list.value[0])
|
||||||
)[0].key
|
)[0].key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,7 +173,7 @@
|
||||||
message.config({
|
message.config({
|
||||||
top: '100px', // 距离顶部的位置
|
top: '100px', // 距离顶部的位置
|
||||||
})
|
})
|
||||||
message.error('暂未上传使用手册')
|
message.error('暂未开放新手指引')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
watch(
|
watch(
|
||||||
|
|
|
@ -17,7 +17,12 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="main-center">
|
<div class="main-center">
|
||||||
<p>{{ dataFrom.numberName }}</p>
|
<p>{{ dataFrom.numberName }}</p>
|
||||||
<p>{{ dataFrom.number }}</p>
|
<a-tooltip>
|
||||||
|
<template #title>{{ dataFrom.number }}</template>
|
||||||
|
<p class="main-center-number">
|
||||||
|
{{ dataFrom.number }}
|
||||||
|
</p>
|
||||||
|
</a-tooltip>
|
||||||
<div @click="copyFunction(dataFrom.number, '复制账号')">复制账号</div>
|
<div @click="copyFunction(dataFrom.number, '复制账号')">复制账号</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main-right">
|
<div class="main-right">
|
||||||
|
@ -40,9 +45,9 @@
|
||||||
})
|
})
|
||||||
const dataFrom = ref({
|
const dataFrom = ref({
|
||||||
linkName: '试用地址',
|
linkName: '试用地址',
|
||||||
link: 'http://localhost:8080/#/detailsfdddffffffffffffffdfgdfgdfdgdfgdfg',
|
link: '',
|
||||||
numberName: '试用账号',
|
numberName: '试用账号',
|
||||||
number: 'zhangfeihu',
|
number: '',
|
||||||
passwordName: '试用密码',
|
passwordName: '试用密码',
|
||||||
password: '**************************',
|
password: '**************************',
|
||||||
password2: '',
|
password2: '',
|
||||||
|
@ -144,6 +149,13 @@
|
||||||
.main-center {
|
.main-center {
|
||||||
padding-left: 1rem;
|
padding-left: 1rem;
|
||||||
padding-right: 1rem;
|
padding-right: 1rem;
|
||||||
|
.main-center-number {
|
||||||
|
display: inline-block;
|
||||||
|
width: 2.4rem;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.main-right {
|
.main-right {
|
||||||
padding-right: 0.7rem;
|
padding-right: 0.7rem;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="application-associated-ability" v-if="flag">
|
<div class="application-associated-ability" v-if="flag">
|
||||||
<detals-title title="关联应用" type="ASSOCIATED"></detals-title>
|
<detals-title title="来源应用" type="ASSOCIATED"></detals-title>
|
||||||
<div
|
<div
|
||||||
class="application-associated-ability-main"
|
class="application-associated-ability-main"
|
||||||
v-if="dataFrom[0].dataList.length < 4"
|
v-if="dataFrom[0].dataList.length < 4"
|
||||||
|
|
|
@ -64,18 +64,18 @@
|
||||||
associatedComponents: { type: Array, default: null },
|
associatedComponents: { type: Array, default: null },
|
||||||
})
|
})
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
// 根据能力id查询是否存在关联应用
|
// 根据能力id查询是否存在来源应用
|
||||||
if (keyId) {
|
if (keyId) {
|
||||||
queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
|
queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
|
||||||
console.log('ressssssss', res)
|
console.log('ressssssss', res)
|
||||||
if (res.data.data.length > 0) {
|
if (res.data.data.length > 0) {
|
||||||
// 存在关联应用时在导航栏加入关联应用
|
// 存在来源应用时在导航栏加入来源应用
|
||||||
navList.value.unshift({
|
navList.value.unshift({
|
||||||
name: '关联应用',
|
name: '来源应用',
|
||||||
key: 'layer-service-associated-ability',
|
key: 'layer-service-associated-ability',
|
||||||
show: true,
|
show: true,
|
||||||
})
|
})
|
||||||
list.value.unshift('关联应用')
|
list.value.unshift('来源应用')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -137,7 +137,7 @@
|
||||||
list.value.push('使用方式')
|
list.value.push('使用方式')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
list.value.unshift('关联应用')
|
list.value.unshift('来源应用')
|
||||||
navList.value.forEach((item) => {
|
navList.value.forEach((item) => {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
if (list.value.indexOf(item.name) > -1) {
|
if (list.value.indexOf(item.name) > -1) {
|
||||||
|
@ -146,7 +146,7 @@
|
||||||
})
|
})
|
||||||
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
if (navList.value.filter((item) => item.name === list.value[0])[0]) {
|
||||||
select.value = navList.value.filter(
|
select.value = navList.value.filter(
|
||||||
(item) => (item.name === '关联应用') | (item.name === list.value[0])
|
(item) => (item.name === '来源应用') | (item.name === list.value[0])
|
||||||
// (item) => item.name === list.value[0]
|
// (item) => item.name === list.value[0]
|
||||||
)[0].key
|
)[0].key
|
||||||
}
|
}
|
||||||
|
@ -215,7 +215,7 @@
|
||||||
list.value.push('使用方式')
|
list.value.push('使用方式')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
list.value.unshift('关联应用')
|
list.value.unshift('来源应用')
|
||||||
navList.value.forEach((item) => {
|
navList.value.forEach((item) => {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
if (list.value.indexOf(item.name) > -1) {
|
if (list.value.indexOf(item.name) > -1) {
|
||||||
|
|
|
@ -12,14 +12,14 @@
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>{{ item.linkValue }}</template>
|
<template #title>{{ item.linkValue }}</template>
|
||||||
<p>
|
<p @click="ServiceAddressFunction(item.linkValue)">
|
||||||
服务地址:
|
服务地址:
|
||||||
{{ item.linkValue }}
|
{{ item.linkValue }}
|
||||||
</p>
|
</p>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>{{ item.csslinkValue }}</template>
|
<template #title>{{ item.csslinkValue }}</template>
|
||||||
<p>
|
<p @click="ServiceAddressFunction(item.csslinkValue)">
|
||||||
样式服务地址:
|
样式服务地址:
|
||||||
{{ item.csslinkValue }}
|
{{ item.csslinkValue }}
|
||||||
</p>
|
</p>
|
||||||
|
@ -186,6 +186,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
//服务地址和样式服务地址跳转方法
|
||||||
|
function ServiceAddressFunction(link) {
|
||||||
|
window.open(link)
|
||||||
|
}
|
||||||
function technical() {
|
function technical() {
|
||||||
// 拼接路径
|
// 拼接路径
|
||||||
// const type = pinyin(props.dataList.type, {
|
// const type = pinyin(props.dataList.type, {
|
||||||
|
@ -280,6 +284,7 @@
|
||||||
color: #212956;
|
color: #212956;
|
||||||
line-height: 26px;
|
line-height: 26px;
|
||||||
margin-top: 0.3rem;
|
margin-top: 0.3rem;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
p:first-child {
|
p:first-child {
|
||||||
margin-top: 0.2rem;
|
margin-top: 0.2rem;
|
||||||
|
|
|
@ -2,8 +2,51 @@
|
||||||
<div class="ability-to-apply-for" :class="{ all: falg }">
|
<div class="ability-to-apply-for" :class="{ all: falg }">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<span>申请能力</span>
|
<span>申请能力</span>
|
||||||
<span class="btn" @click="falg = !falg" v-show="!falg">展开</span>
|
<div class="btnBox" v-show="!falg">
|
||||||
<span class="btn" @click="falg = !falg" v-show="falg">收起</span>
|
<svg
|
||||||
|
t="1659419933164"
|
||||||
|
class="btn"
|
||||||
|
viewBox="0 0 1024 1024"
|
||||||
|
version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
p-id="5926"
|
||||||
|
width="20"
|
||||||
|
height="20"
|
||||||
|
@click="falg = !falg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M512 565.12a45.44 45.44 0 0 1-32.64-13.44l-448-451.84a45.44 45.44 0 0 1 64-64L512 454.4 931.84 35.2a46.08 46.08 0 0 1 64 0 45.44 45.44 0 0 1 0 64L545.28 551.68a45.44 45.44 0 0 1-33.28 13.44z"
|
||||||
|
fill="#13227a"
|
||||||
|
p-id="5927"
|
||||||
|
></path>
|
||||||
|
<path
|
||||||
|
d="M512 1016.96a45.44 45.44 0 0 1-32.64-13.44l-448-451.84a45.44 45.44 0 0 1 64-64L512 906.24l419.2-419.2a46.08 46.08 0 0 1 64 0 45.44 45.44 0 0 1 0 64l-449.92 452.48a45.44 45.44 0 0 1-33.28 13.44z"
|
||||||
|
fill="#13227a"
|
||||||
|
p-id="5928"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
<span class="btn" @click="falg = !falg">展开</span>
|
||||||
|
</div>
|
||||||
|
<div class="btnBox" v-show="falg">
|
||||||
|
<svg
|
||||||
|
t="1659420014519"
|
||||||
|
class="btn"
|
||||||
|
viewBox="0 0 1024 1024"
|
||||||
|
version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
p-id="9781"
|
||||||
|
width="20"
|
||||||
|
height="20"
|
||||||
|
@click="falg = !falg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M498.095 146.134l403.416 403.415c17.387 17.387 45.576 17.387 62.963 0s17.387-45.576 0-62.963L499.888 22 35.302 486.586c-17.388 17.387-17.388 45.575 0 62.963 17.387 17.387 45.576 17.387 62.964 0L498.095 146.134zM498.817 592.073l402.693 402.693c17.387 17.387 45.576 17.387 62.963 0s17.387-45.576 0-62.963L499.888 467.219 35.302 931.804c-17.388 17.387-17.388 45.576 0 62.963 17.387 17.387 45.576 17.387 62.964 0L498.817 592.073z"
|
||||||
|
p-id="9782"
|
||||||
|
fill="#13227a"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
<span class="btn" @click="falg = !falg">收起</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-for="(item, index) in dataForm"
|
v-for="(item, index) in dataForm"
|
||||||
|
@ -50,7 +93,7 @@
|
||||||
{{
|
{{
|
||||||
val.description ||
|
val.description ||
|
||||||
((val.note1 || '') &&
|
((val.note1 || '') &&
|
||||||
( JSON.parse(val.note1)[0].channelName || '--') +
|
(JSON.parse(val.note1)[0].channelName || '--') +
|
||||||
'等' +
|
'等' +
|
||||||
JSON.parse(val.note1).length +
|
JSON.parse(val.note1).length +
|
||||||
'个摄像头') ||
|
'个摄像头') ||
|
||||||
|
@ -248,6 +291,7 @@
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tx {
|
.tx {
|
||||||
|
@ -285,4 +329,8 @@
|
||||||
background: url('~@/assets/home/ywzj_square.png') no-repeat;
|
background: url('~@/assets/home/ywzj_square.png') no-repeat;
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
}
|
}
|
||||||
|
.btnBox {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -772,7 +772,7 @@
|
||||||
type: Cardsname.value,
|
type: Cardsname.value,
|
||||||
name: '',
|
name: '',
|
||||||
infoList: [],
|
infoList: [],
|
||||||
orderField: 'total', // total 综合 visits 访问量 applyCount 申请量 score 评分 collectCount 收藏量
|
orderField: 'visits', // total 综合 visits 访问量 applyCount 申请量 score 评分 collectCount 收藏量
|
||||||
orderType: 'DESC', // ASC 升序 DESC 降序
|
orderType: 'DESC', // ASC 升序 DESC 降序
|
||||||
}
|
}
|
||||||
//西海岸查询参数
|
//西海岸查询参数
|
||||||
|
|
|
@ -37,7 +37,9 @@
|
||||||
{{ `共选取${selectedRowKeys.length}个算法` }}
|
{{ `共选取${selectedRowKeys.length}个算法` }}
|
||||||
</div>
|
</div>
|
||||||
<div class="td" v-for="(item, k) in detailArray" :key="k">
|
<div class="td" v-for="(item, k) in detailArray" :key="k">
|
||||||
<span v-if="item">{{ item.name || '--' }}</span>
|
<span v-if="item" style="line-height: 14px">
|
||||||
|
{{ item.name || '--' }}
|
||||||
|
</span>
|
||||||
<span
|
<span
|
||||||
v-if="item"
|
v-if="item"
|
||||||
@click="deleteList(k)"
|
@click="deleteList(k)"
|
||||||
|
@ -230,10 +232,10 @@
|
||||||
text: '共享条件',
|
text: '共享条件',
|
||||||
key: 'shareCondition',
|
key: 'shareCondition',
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
text: '共享类型',
|
// text: '共享类型',
|
||||||
key: 'shareType',
|
// key: 'shareType',
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
text: '算法描述',
|
text: '算法描述',
|
||||||
key: 'description',
|
key: 'description',
|
||||||
|
@ -355,7 +357,6 @@
|
||||||
answer: '回答',
|
answer: '回答',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
const showAddModal = ref(false)
|
const showAddModal = ref(false)
|
||||||
const dataList = ref([])
|
const dataList = ref([])
|
||||||
const selectedRowKeys = ref([])
|
const selectedRowKeys = ref([])
|
||||||
|
@ -428,7 +429,7 @@
|
||||||
_newObj.list = []
|
_newObj.list = []
|
||||||
}
|
}
|
||||||
let list = []
|
let list = []
|
||||||
titleInfoObj[titleKey].map((trName) => {
|
titleInfoObj[titleKey].map((trName, index) => {
|
||||||
let obj = {
|
let obj = {
|
||||||
name: trName.text,
|
name: trName.text,
|
||||||
}
|
}
|
||||||
|
@ -445,8 +446,15 @@
|
||||||
}
|
}
|
||||||
tableData.value.push(_newObj)
|
tableData.value.push(_newObj)
|
||||||
})
|
})
|
||||||
|
tableData.value[1].list[4].infoList.map((item, index) => {
|
||||||
|
if (!item && tableData.value[0].list[0].infoList[index]) {
|
||||||
|
tableData.value[1].list[3].infoList[index] = '否'
|
||||||
|
} else if (item && tableData.value[0].list[0].infoList[index]) {
|
||||||
|
tableData.value[1].list[3].infoList[index] = '是'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
console.log('11111111111111', tableData.value)
|
console.log('11111111111111', tableData.value[1].list[4])
|
||||||
}
|
}
|
||||||
|
|
||||||
// 基本信息等
|
// 基本信息等
|
||||||
|
|
|
@ -249,7 +249,7 @@
|
||||||
relaunch,
|
relaunch,
|
||||||
selectOne,
|
selectOne,
|
||||||
} from '@/api/home'
|
} from '@/api/home'
|
||||||
import { getCategoryTreePage } from '@/api/personalCenter'
|
import { getCategoryTreePage, endProcess } from '@/api/personalCenter'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
import { sgcDel, getApplyForm } from '@/api/personalCenter'
|
import { sgcDel, getApplyForm } from '@/api/personalCenter'
|
||||||
import { pageWithAttrs } from '@/api/home'
|
import { pageWithAttrs } from '@/api/home'
|
||||||
|
@ -327,6 +327,30 @@
|
||||||
enclosureName: '', //附件
|
enclosureName: '', //附件
|
||||||
})
|
})
|
||||||
const dataList = ref([])
|
const dataList = ref([])
|
||||||
|
const id = router.currentRoute.value.query.id
|
||||||
|
const taskId = router.currentRoute.value.query.taskId
|
||||||
|
const businessKey = ref(router.currentRoute.value.query.id)
|
||||||
|
if (id) {
|
||||||
|
getApplyForm(id).then((res) => {
|
||||||
|
console.log('修改==============>', res.data.data)
|
||||||
|
// formName.id = res.data.data.id || ''
|
||||||
|
formName.applicationSystem = res.data.data.applicationSystem || ''
|
||||||
|
formName.applicationScene = res.data.data.applicationScene || []
|
||||||
|
formName.applicationBackground =
|
||||||
|
res.data.data.applicationBackground || ''
|
||||||
|
formName.effectWish = res.data.data.effectWish || ''
|
||||||
|
formName.phone = res.data.data.phone || ''
|
||||||
|
// formName.system = res.data.data.system || []
|
||||||
|
formName.enclosure = res.data.data.enclosure || ''
|
||||||
|
formName.enclosureName = res.data.data.enclosureName || ''
|
||||||
|
if (res.data.data.enclosure) {
|
||||||
|
fileList.value.push({
|
||||||
|
name: res.data.data.enclosureName,
|
||||||
|
url: res.data.data.enclosure,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
getUser().then((res) => {
|
getUser().then((res) => {
|
||||||
formName.user = res.data.data.realName
|
formName.user = res.data.data.realName
|
||||||
formName.userId = res.data.data.id
|
formName.userId = res.data.data.id
|
||||||
|
@ -338,18 +362,6 @@
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
// console.log('本地存储====================》', list.value)
|
// console.log('本地存储====================》', list.value)
|
||||||
const businessKey = ref(router.currentRoute.value.query.id)
|
|
||||||
const taskId = ref(router.currentRoute.value.query.taskId)
|
|
||||||
if (businessKey.value) {
|
|
||||||
getApplyForm(businessKey.value).then((res) => {
|
|
||||||
formName.id = res.data.data.id
|
|
||||||
formName.phone = res.data.data.phone
|
|
||||||
formName.scene = res.data.data.scene
|
|
||||||
formName.basis = res.data.data.basis
|
|
||||||
formName.enclosure = res.data.data.enclosure
|
|
||||||
// console.log('回填数据================>', res, formName.phone)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const applicationSceneOpthion = ref([])
|
const applicationSceneOpthion = ref([])
|
||||||
getCategoryTreePage({
|
getCategoryTreePage({
|
||||||
page: 1,
|
page: 1,
|
||||||
|
@ -385,41 +397,146 @@
|
||||||
window.history.go(-1)
|
window.history.go(-1)
|
||||||
}
|
}
|
||||||
const processStartHandle = () => {
|
const processStartHandle = () => {
|
||||||
if (businessKey.value) {
|
formRef.value.validate().then(() => {
|
||||||
const obj = ref({})
|
if (!formUrl) {
|
||||||
for (const key in formName) {
|
return message.error('请设置保存表单的URL')
|
||||||
if (key !== 'formNameSystem') {
|
|
||||||
obj.value[key] = formName[key]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
obj.value.system = formName.system[0].resourceName
|
if (!formName) {
|
||||||
tabilityapplication(obj.value).then((upres) => {
|
return message.error('请设置表单名称')
|
||||||
if (upres.data.code == 0) {
|
}
|
||||||
relaunch({ data: obj.value, taskId: taskId.value }).then(
|
if (id) {
|
||||||
(res) => {
|
endProcess({ instanceId: taskId }).then((end) => {
|
||||||
// console.log('驳回================>', res)
|
if (end.data.code == 0) {
|
||||||
if (res.data.code == 0) {
|
let ids = []
|
||||||
message.success('重新发起流程成功!')
|
let falgNum = 0
|
||||||
window.setTimeout(() => {
|
let sxt = true
|
||||||
window.history.go(-1)
|
formName.system = []
|
||||||
}, 1000)
|
console.log('list==================', list.value)
|
||||||
} else {
|
list.value.map((val) => {
|
||||||
message.error('重新发起流程失败!')
|
val.arr.map((item) => {
|
||||||
|
if (item.type !== '基础设施') {
|
||||||
|
falgNum++
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
list.value.map((val) => {
|
||||||
|
val.arr.map((item) => {
|
||||||
|
if (item.type !== '基础设施') {
|
||||||
|
formName.system.push({
|
||||||
|
resourceId: item.resourceId,
|
||||||
|
resourceName: item.resourceName,
|
||||||
|
})
|
||||||
|
falgNum++
|
||||||
|
console.log(item.id)
|
||||||
|
if (item.id) {
|
||||||
|
ids.push(item.id)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let obj = {}
|
||||||
|
Object.assign(obj, formName)
|
||||||
|
console.log('摄像头===============>', obj, item)
|
||||||
|
obj.system = []
|
||||||
|
item.note1 = JSON.parse(item.note1)
|
||||||
|
item.note1.map((sxt) => {
|
||||||
|
obj.system.push({
|
||||||
|
resourceId: sxt.idtCameraChannel + '',
|
||||||
|
resourceName: sxt.channelName,
|
||||||
|
cameraId: sxt.channelId, // 改接口后删除
|
||||||
|
channelCode: sxt.channelCode,
|
||||||
|
channelId: sxt.channelId,
|
||||||
|
channelName: sxt.channelName,
|
||||||
|
checkStatus: sxt.checkStatus + '',
|
||||||
|
gpsX: sxt.gpsX,
|
||||||
|
gpsY: sxt.gpsY,
|
||||||
|
idtCameraChannel: sxt.idtCameraChannel + '',
|
||||||
|
nodeName: sxt.nodeName,
|
||||||
|
parentId: sxt.parentId,
|
||||||
|
status: sxt.status + '',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
submitApply(obj).then((res) => {
|
||||||
|
// applySuccess.value = false
|
||||||
|
console.log('摄像头申请================>', res)
|
||||||
|
if (item.id) {
|
||||||
|
sgcDel({ ids: [item.id] }).then((res1) => {
|
||||||
|
if (res1.data.msg === 'success') {
|
||||||
|
if (falgNum == 0 && sxt) {
|
||||||
|
message.success(
|
||||||
|
'申请提交成功,请到消息中心查看!'
|
||||||
|
)
|
||||||
|
sxt = false
|
||||||
|
}
|
||||||
|
mybus.emit('getSgcNum')
|
||||||
|
router.push({
|
||||||
|
path: '/DetailsPageconetent',
|
||||||
|
query: {
|
||||||
|
select: '组件服务',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
if (
|
||||||
|
res.data.msg === 'success' &&
|
||||||
|
falgNum == 0 &&
|
||||||
|
sxt
|
||||||
|
) {
|
||||||
|
message.success('申请提交成功,请到消息中心查看!')
|
||||||
|
sxt = false
|
||||||
|
}
|
||||||
|
router.push({
|
||||||
|
path: '/DetailsPageconetent',
|
||||||
|
query: {
|
||||||
|
select: '组件服务',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
console.log(
|
||||||
|
'提交数据==========================>',
|
||||||
|
formName,
|
||||||
|
ids
|
||||||
|
)
|
||||||
|
if (formName.system.length !== 0) {
|
||||||
|
if (formName.applicationSystem.length == 0) {
|
||||||
|
formName.applicationSystem = ''
|
||||||
}
|
}
|
||||||
|
submitApply(formName).then((res) => {
|
||||||
|
// applySuccess.value = false
|
||||||
|
message.success('申请提交成功,请到消息中心查看!')
|
||||||
|
console.log('能力申请================>', res)
|
||||||
|
if (res.data.code == 0) {
|
||||||
|
if (ids && ids.length > 0) {
|
||||||
|
sgcDel({ ids: ids }).then((res) => {
|
||||||
|
if (res.data.msg === 'success') {
|
||||||
|
mybus.emit('getSgcNum')
|
||||||
|
router.push({
|
||||||
|
path: '/DetailsPageconetent',
|
||||||
|
query: {
|
||||||
|
select: '组件服务',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
router.push({
|
||||||
|
path: '/DetailsPageconetent',
|
||||||
|
query: {
|
||||||
|
select: '组件服务',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
message.error('申请失败!')
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
)
|
}
|
||||||
} else {
|
})
|
||||||
message.error('数据更新失败!')
|
} else {
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
formRef.value.validate().then(() => {
|
|
||||||
if (!formUrl) {
|
|
||||||
return message.error('请设置保存表单的URL')
|
|
||||||
}
|
|
||||||
if (!formName) {
|
|
||||||
return message.error('请设置表单名称')
|
|
||||||
}
|
|
||||||
if (!applyAll) {
|
if (!applyAll) {
|
||||||
console.log(list.value[0].arr[0])
|
console.log(list.value[0].arr[0])
|
||||||
// 单兵设备为了演示 添加 不做处理
|
// 单兵设备为了演示 添加 不做处理
|
||||||
|
@ -576,8 +693,8 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
// 启动流程
|
// 启动流程
|
||||||
const startProcess = (processDefinitionKey, businessKey, formData) => {
|
const startProcess = (processDefinitionKey, businessKey, formData) => {
|
||||||
|
|
|
@ -447,13 +447,15 @@
|
||||||
height: 0.24rem;
|
height: 0.24rem;
|
||||||
width: 0.24rem;
|
width: 0.24rem;
|
||||||
background: url('~@/assets/home/shenqing.png') no-repeat;
|
background: url('~@/assets/home/shenqing.png') no-repeat;
|
||||||
background-size: cover;
|
background-size: contain;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
}
|
}
|
||||||
.fixedmount div:nth-child(2) p:nth-child(1) {
|
.fixedmount div:nth-child(2) p:nth-child(1) {
|
||||||
height: 0.24rem;
|
height: 0.24rem;
|
||||||
width: 0.24rem;
|
width: 0.24rem;
|
||||||
background: url('~@/assets/home/shangjia.png') no-repeat;
|
background: url('~@/assets/home/shangjia.png') no-repeat;
|
||||||
|
background-size: contain;
|
||||||
|
background-position: center;
|
||||||
}
|
}
|
||||||
.ability-to-recommend-bottom {
|
.ability-to-recommend-bottom {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
@ -48,6 +48,9 @@
|
||||||
</div>
|
</div>
|
||||||
<span v-if="item.title !== '区级'">{{ val.total }}</span>
|
<span v-if="item.title !== '区级'">{{ val.total }}</span>
|
||||||
<span v-else>
|
<span v-else>
|
||||||
|
<span style="display: inline-block; margin-right: 4px">
|
||||||
|
{{ val.total }}
|
||||||
|
</span>
|
||||||
<down-outlined v-show="!val.show" />
|
<down-outlined v-show="!val.show" />
|
||||||
<up-outlined v-show="val.show" />
|
<up-outlined v-show="val.show" />
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -67,6 +67,10 @@
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
<i class="boundary"></i>
|
<i class="boundary"></i>
|
||||||
|
<!-- 批量预览 -->
|
||||||
|
<a-button type="primary" @click="batchPreview" class="buttonAdd">
|
||||||
|
批量预览
|
||||||
|
</a-button>
|
||||||
<!-- 添加至申购车 -->
|
<!-- 添加至申购车 -->
|
||||||
<a-button type="primary" @click="addShoppingCart" class="buttonAdd">
|
<a-button type="primary" @click="addShoppingCart" class="buttonAdd">
|
||||||
添加至申购车
|
添加至申购车
|
||||||
|
@ -143,6 +147,7 @@
|
||||||
</template>
|
</template>
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 单个预览弹窗 -->
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model:visible="visible"
|
v-model:visible="visible"
|
||||||
title="视频预览"
|
title="视频预览"
|
||||||
|
@ -156,6 +161,26 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<!-- 批量预览弹窗 -->
|
||||||
|
<a-modal
|
||||||
|
wrapClassName="batch-preview-modal"
|
||||||
|
v-model:visible="batchVisible"
|
||||||
|
title="视频批量预览"
|
||||||
|
:width="1250"
|
||||||
|
destroyOnClose
|
||||||
|
@cancel="videoClean"
|
||||||
|
>
|
||||||
|
<template #footer></template>
|
||||||
|
<div class="batch-video">
|
||||||
|
<div
|
||||||
|
v-for="item in videoList"
|
||||||
|
:key="item.id"
|
||||||
|
style="width: 100%; height: 100%"
|
||||||
|
>
|
||||||
|
<vue3VideoPlay v-bind="item.options" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
<a-modal
|
<a-modal
|
||||||
wrapClassName="wrj"
|
wrapClassName="wrj"
|
||||||
v-model:visible="wrjVisible"
|
v-model:visible="wrjVisible"
|
||||||
|
@ -233,7 +258,7 @@
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const whoShow1 = ref(whoShow)
|
const whoShow1 = ref(whoShow)
|
||||||
const options = reactive({
|
const options = reactive({
|
||||||
width: '700px', //播放器宽度
|
width: '900px', //播放器宽度
|
||||||
height: '400px', //播放器高度
|
height: '400px', //播放器高度
|
||||||
color: '#409eff', //主题色
|
color: '#409eff', //主题色
|
||||||
title: '', //视频名称
|
title: '', //视频名称
|
||||||
|
@ -259,14 +284,16 @@
|
||||||
'fullScreen',
|
'fullScreen',
|
||||||
], //显示所有按钮,
|
], //显示所有按钮,
|
||||||
})
|
})
|
||||||
|
const videoList = ref([])
|
||||||
let visible = ref(false)
|
let visible = ref(false)
|
||||||
|
let batchVisible = ref(false)
|
||||||
const jcssType = ref(router.currentRoute.value.query.type)
|
const jcssType = ref(router.currentRoute.value.query.type)
|
||||||
const pagination = ref({
|
const pagination = ref({
|
||||||
total: 0,
|
total: 0,
|
||||||
current: 1,
|
current: 1,
|
||||||
pageSize: 10, //每页中显示10条数据
|
pageSize: 10, //每页中显示10条数据
|
||||||
showSizeChanger: true,
|
showSizeChanger: true,
|
||||||
pageSizeOptions: ['5', '10', '15', '20'], //每页中显示的数据
|
pageSizeOptions: ['10', '30', '50', '100', '1000'], //每页中显示的数据
|
||||||
})
|
})
|
||||||
const mapSearchParam = ref({
|
const mapSearchParam = ref({
|
||||||
// 地图搜索初始化数据
|
// 地图搜索初始化数据
|
||||||
|
@ -552,6 +579,56 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const batchPreview = async function () {
|
||||||
|
if (selectedList.value.length > 0) {
|
||||||
|
const list = selectedList.value.splice(0, 4)
|
||||||
|
const length = list.length
|
||||||
|
videoList.value = []
|
||||||
|
for (let index = 0; index < length; index++) {
|
||||||
|
const param = {
|
||||||
|
key: list[index].channelId,
|
||||||
|
}
|
||||||
|
let ob = {
|
||||||
|
options: {
|
||||||
|
width: '600px', //播放器宽度
|
||||||
|
height: '350px', //播放器高度
|
||||||
|
color: '#409eff', //主题色
|
||||||
|
title: '', //视频名称
|
||||||
|
src: '', //视频源
|
||||||
|
type: 'm3u8', // 视频源类型
|
||||||
|
muted: false, //静音
|
||||||
|
webFullScreen: false,
|
||||||
|
speedRate: ['0.75', '1.0', '1.25', '1.5', '2.0'], //播放倍速
|
||||||
|
autoPlay: false, //自动播放
|
||||||
|
loop: false, //循环播放
|
||||||
|
mirror: false, //镜像画面
|
||||||
|
ligthOff: false, //关灯模式
|
||||||
|
volume: 0.3, //默认音量大小
|
||||||
|
control: true, //是否显示控制
|
||||||
|
controlBtns: [
|
||||||
|
'audioTrack',
|
||||||
|
'quality',
|
||||||
|
'speedRate',
|
||||||
|
'volume',
|
||||||
|
'setting',
|
||||||
|
'pip',
|
||||||
|
'pageFullScreen',
|
||||||
|
'fullScreen',
|
||||||
|
], //显示所有按钮,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
await getStreamByChannelCode(param).then((res) => {
|
||||||
|
ob.options.src = res.data.data
|
||||||
|
console.log('监测ob的变化', ob)
|
||||||
|
videoList.value.push(ob)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
console.log('验证数据的准确性', videoList)
|
||||||
|
batchVisible.value = true
|
||||||
|
} else {
|
||||||
|
message.error('请选择需要预览的数据')
|
||||||
|
}
|
||||||
|
}
|
||||||
// 清空
|
// 清空
|
||||||
const nullClick = () => {
|
const nullClick = () => {
|
||||||
clickList.value[1].content = []
|
clickList.value[1].content = []
|
||||||
|
@ -562,8 +639,19 @@
|
||||||
// 重置
|
// 重置
|
||||||
const clean = () => {
|
const clean = () => {
|
||||||
mapSearchParam.value.cameraName = ''
|
mapSearchParam.value.cameraName = ''
|
||||||
|
selectedList.value = []
|
||||||
|
selectedRowKeys.value = []
|
||||||
|
videoList.value = []
|
||||||
|
pagination.value.current = 1
|
||||||
|
mapSearchParam.value.pageNum = 1
|
||||||
|
pagination.value.pageSize = 10
|
||||||
getCamera()
|
getCamera()
|
||||||
}
|
}
|
||||||
|
const videoClean = () => {
|
||||||
|
selectedList.value = []
|
||||||
|
selectedRowKeys.value = []
|
||||||
|
videoList.value = []
|
||||||
|
}
|
||||||
// 一键申请
|
// 一键申请
|
||||||
const dept = reactive({})
|
const dept = reactive({})
|
||||||
// eslint-disable-next-line no-undef
|
// eslint-disable-next-line no-undef
|
||||||
|
@ -709,8 +797,8 @@
|
||||||
const onSelectChange = (record, selected, selectedRows, nativeEvent) => {
|
const onSelectChange = (record, selected, selectedRows, nativeEvent) => {
|
||||||
console.log('hahhahah', record, selected, selectedRows, nativeEvent)
|
console.log('hahhahah', record, selected, selectedRows, nativeEvent)
|
||||||
if (selected) {
|
if (selected) {
|
||||||
if (selectedRowKeys.value.length == 10) {
|
if (selectedRowKeys.value.length == 1000) {
|
||||||
message.warning('最多只能添加10个摄像头!')
|
message.warning('最多只能添加1000个摄像头!')
|
||||||
} else {
|
} else {
|
||||||
selectedList.value.push(record)
|
selectedList.value.push(record)
|
||||||
selectedRowKeys.value.push(record.channelCode || record.channelId)
|
selectedRowKeys.value.push(record.channelCode || record.channelId)
|
||||||
|
@ -734,8 +822,8 @@
|
||||||
selectedList.value.push(val)
|
selectedList.value.push(val)
|
||||||
selectedRowKeys.value.push(val.channelCode || val.channelId)
|
selectedRowKeys.value.push(val.channelCode || val.channelId)
|
||||||
})
|
})
|
||||||
if (selectedRowKeys.value.length > 10) {
|
if (selectedRowKeys.value.length > 1000) {
|
||||||
message.warning('最多只能添加10个摄像头!')
|
message.warning('最多只能添加1000个摄像头!')
|
||||||
changeRows.map((val) => {
|
changeRows.map((val) => {
|
||||||
selectedList.value = selectedList.value.filter(
|
selectedList.value = selectedList.value.filter(
|
||||||
(item) => item.idtCameraChannel !== val.idtCameraChannel
|
(item) => item.idtCameraChannel !== val.idtCameraChannel
|
||||||
|
@ -912,4 +1000,15 @@
|
||||||
overflow-y: scroll !important;
|
overflow-y: scroll !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.batch-preview-modal {
|
||||||
|
.batch-video {
|
||||||
|
width: 100%;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 50% 50%;
|
||||||
|
grid-template-rows: 50% 50%;
|
||||||
|
justify-content: center;
|
||||||
|
grid-row-gap: 14px;
|
||||||
|
grid-column-gap: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -93,7 +93,7 @@
|
||||||
// name: '市南区',
|
// name: '市南区',
|
||||||
// code: 'shinan',
|
// code: 'shinan',
|
||||||
// className: 'classsn',
|
// className: 'classsn',
|
||||||
// value: 0,
|
// value: 1,
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
name: '市北区',
|
name: '市北区',
|
||||||
|
@ -117,13 +117,13 @@
|
||||||
name: '李沧区',
|
name: '李沧区',
|
||||||
code: 'licang',
|
code: 'licang',
|
||||||
className: 'classlc',
|
className: 'classlc',
|
||||||
value: 0,
|
value: 0.2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '城阳区',
|
name: '城阳区',
|
||||||
code: 'chengyang',
|
code: 'chengyang',
|
||||||
className: 'classcy',
|
className: 'classcy',
|
||||||
value: 0,
|
value: 0.2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '即墨区',
|
name: '即墨区',
|
||||||
|
@ -175,6 +175,8 @@
|
||||||
]
|
]
|
||||||
} else if (val.name === '市北区') {
|
} else if (val.name === '市北区') {
|
||||||
geoCoordMap[val.name] = [val.coord[0], val.coord[1]]
|
geoCoordMap[val.name] = [val.coord[0], val.coord[1]]
|
||||||
|
} else if (val.name === '城阳区') {
|
||||||
|
geoCoordMap[val.name] = [val.coord[0] - 0.057495, val.coord[1]]
|
||||||
} else if (val.name === '市南区') {
|
} else if (val.name === '市南区') {
|
||||||
geoCoordMap[val.name] = [120.364482, 36.065671]
|
geoCoordMap[val.name] = [120.364482, 36.065671]
|
||||||
}
|
}
|
||||||
|
@ -322,7 +324,12 @@
|
||||||
let res = []
|
let res = []
|
||||||
for (let i = 0; i < data.length; i++) {
|
for (let i = 0; i < data.length; i++) {
|
||||||
let dataItem = data[i]
|
let dataItem = data[i]
|
||||||
if (dataItem.name === '西海岸' || dataItem.name === '崂山区') {
|
if (
|
||||||
|
dataItem.name === '西海岸' ||
|
||||||
|
dataItem.name === '崂山区' ||
|
||||||
|
dataItem.name === '李沧区' ||
|
||||||
|
dataItem.name === '城阳区'
|
||||||
|
) {
|
||||||
let fromCoord = geoCoordMap[dataItem.name]
|
let fromCoord = geoCoordMap[dataItem.name]
|
||||||
let toCoord = [120.364482, 36.065671]
|
let toCoord = [120.364482, 36.065671]
|
||||||
if (fromCoord && toCoord) {
|
if (fromCoord && toCoord) {
|
||||||
|
@ -344,7 +351,12 @@
|
||||||
let res = []
|
let res = []
|
||||||
for (let i = 0; i < data.length; i++) {
|
for (let i = 0; i < data.length; i++) {
|
||||||
let dataItem = data[i]
|
let dataItem = data[i]
|
||||||
if (dataItem.name === '西海岸' || dataItem.name === '崂山区') {
|
if (
|
||||||
|
dataItem.name === '西海岸' ||
|
||||||
|
dataItem.name === '崂山区' ||
|
||||||
|
dataItem.name === '李沧区' ||
|
||||||
|
dataItem.name === '城阳区'
|
||||||
|
) {
|
||||||
let fromCoord = [120.364482, 36.065671]
|
let fromCoord = [120.364482, 36.065671]
|
||||||
let toCoord = geoCoordMap[dataItem.name]
|
let toCoord = geoCoordMap[dataItem.name]
|
||||||
if (fromCoord && toCoord) {
|
if (fromCoord && toCoord) {
|
||||||
|
@ -366,7 +378,12 @@
|
||||||
let res = []
|
let res = []
|
||||||
for (let i = 0; i < data.length; i++) {
|
for (let i = 0; i < data.length; i++) {
|
||||||
let dataItem = data[i]
|
let dataItem = data[i]
|
||||||
if (dataItem.name !== '西海岸' && dataItem.name !== '崂山区') {
|
if (
|
||||||
|
dataItem.name !== '西海岸' &&
|
||||||
|
dataItem.name !== '崂山区' &&
|
||||||
|
dataItem.name !== '李沧区' &&
|
||||||
|
dataItem.name !== '城阳区'
|
||||||
|
) {
|
||||||
let fromCoord = [120.364482, 36.065671]
|
let fromCoord = [120.364482, 36.065671]
|
||||||
let toCoord = geoCoordMap[dataItem.name]
|
let toCoord = geoCoordMap[dataItem.name]
|
||||||
if (fromCoord && toCoord) {
|
if (fromCoord && toCoord) {
|
||||||
|
@ -558,7 +575,7 @@
|
||||||
symbolOffset: [0, -20],
|
symbolOffset: [0, -20],
|
||||||
data: [
|
data: [
|
||||||
{
|
{
|
||||||
name: '西海岸',
|
name: '',
|
||||||
value: geoCoordMap['西海岸'].concat([10]),
|
value: geoCoordMap['西海岸'].concat([10]),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -595,10 +612,84 @@
|
||||||
symbolOffset: [0, -20],
|
symbolOffset: [0, -20],
|
||||||
data: [
|
data: [
|
||||||
{
|
{
|
||||||
name: '崂山区',
|
name: '',
|
||||||
value: geoCoordMap['崂山区'].concat([10]),
|
value: geoCoordMap['崂山区'].concat([10]),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'scatter',
|
||||||
|
coordinateSystem: 'geo',
|
||||||
|
zlevel: 2,
|
||||||
|
rippleEffect: {
|
||||||
|
period: 4,
|
||||||
|
brushType: 'stroke',
|
||||||
|
scale: 4,
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
normal: {
|
||||||
|
show: true,
|
||||||
|
position: 'bottom',
|
||||||
|
//offset:[5, 0],
|
||||||
|
color: '#fbd500',
|
||||||
|
formatter: '{b}',
|
||||||
|
textStyle: {
|
||||||
|
color: '#fbd500',
|
||||||
|
fontSize: 18,
|
||||||
|
fontWeight: 600,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
show: true,
|
||||||
|
color: '#f60',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
symbol: 'image://' + require('@/assets/home/yb.png'),
|
||||||
|
symbolSize: 40,
|
||||||
|
symbolOffset: [0, -20],
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
value: geoCoordMap['城阳区'].concat([10]),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'scatter',
|
||||||
|
coordinateSystem: 'geo',
|
||||||
|
zlevel: 2,
|
||||||
|
rippleEffect: {
|
||||||
|
period: 4,
|
||||||
|
brushType: 'stroke',
|
||||||
|
scale: 4,
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
normal: {
|
||||||
|
show: true,
|
||||||
|
position: 'bottom',
|
||||||
|
//offset:[5, 0],
|
||||||
|
color: '#fbd500',
|
||||||
|
formatter: '{b}',
|
||||||
|
textStyle: {
|
||||||
|
color: '#fbd500',
|
||||||
|
fontSize: 18,
|
||||||
|
fontWeight: 600,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
show: true,
|
||||||
|
color: '#f60',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
symbol: 'image://' + require('@/assets/home/yb.png'),
|
||||||
|
symbolSize: 40,
|
||||||
|
symbolOffset: [0, -20],
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
value: geoCoordMap['李沧区'].concat([10]),
|
||||||
|
},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
@ -612,11 +703,93 @@
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
initMap()
|
initMap()
|
||||||
myChart.on('mouseover', function () {
|
myChart.on('mouseover', function (params) {
|
||||||
|
console.log(params.value)
|
||||||
myChart.dispatchAction({
|
myChart.dispatchAction({
|
||||||
type: 'downplay',
|
type: 'downplay',
|
||||||
})
|
})
|
||||||
|
let flag = true
|
||||||
|
if (
|
||||||
|
params.value[0] == '119.825774' &&
|
||||||
|
params.value[1] == '35.739174000000006'
|
||||||
|
) {
|
||||||
|
if (option.series[8].data[0].name == '西海岸') {
|
||||||
|
flag = false
|
||||||
|
}
|
||||||
|
option.series[8].data[0].name = '西海岸'
|
||||||
|
option.series[9].data[0].name = ''
|
||||||
|
option.series[10].data[0].name = ''
|
||||||
|
option.series[11].data[0].name = ''
|
||||||
|
if (flag) {
|
||||||
|
myChart.clear()
|
||||||
|
myChart.setOption(option, true)
|
||||||
|
}
|
||||||
|
} else if (
|
||||||
|
params.value[0] == '120.579994' &&
|
||||||
|
params.value[1] == '36.189191'
|
||||||
|
) {
|
||||||
|
if (option.series[9].data[0].name == '崂山区') {
|
||||||
|
flag = false
|
||||||
|
}
|
||||||
|
option.series[8].data[0].name = ''
|
||||||
|
option.series[9].data[0].name = '崂山区'
|
||||||
|
option.series[10].data[0].name = ''
|
||||||
|
option.series[11].data[0].name = ''
|
||||||
|
if (flag) {
|
||||||
|
myChart.clear()
|
||||||
|
myChart.setOption(option, true)
|
||||||
|
}
|
||||||
|
} else if (
|
||||||
|
params.value[0] == '120.421977' &&
|
||||||
|
params.value[1] == '36.18555'
|
||||||
|
) {
|
||||||
|
if (option.series[11].data[0].name == '李沧区') {
|
||||||
|
flag = false
|
||||||
|
}
|
||||||
|
option.series[8].data[0].name = ''
|
||||||
|
option.series[9].data[0].name = ''
|
||||||
|
option.series[10].data[0].name = ''
|
||||||
|
option.series[11].data[0].name = '李沧区'
|
||||||
|
if (flag) {
|
||||||
|
myChart.clear()
|
||||||
|
myChart.setOption(option, true)
|
||||||
|
}
|
||||||
|
} else if (
|
||||||
|
params.value[0] == '120.272216' &&
|
||||||
|
params.value[1] == '36.27479'
|
||||||
|
) {
|
||||||
|
if (option.series[10].data[0].name == '城阳区') {
|
||||||
|
flag = false
|
||||||
|
}
|
||||||
|
option.series[8].data[0].name = ''
|
||||||
|
option.series[9].data[0].name = ''
|
||||||
|
option.series[10].data[0].name = '城阳区'
|
||||||
|
option.series[11].data[0].name = ''
|
||||||
|
if (flag) {
|
||||||
|
myChart.clear()
|
||||||
|
myChart.setOption(option, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
// myChart.on('mouseout', function (params) {
|
||||||
|
// console.log(params)
|
||||||
|
// switch (params.name) {
|
||||||
|
// case '西海岸':
|
||||||
|
// option.series[8].data[0].name = ''
|
||||||
|
// break
|
||||||
|
// case '崂山区':
|
||||||
|
// option.series[9].data[0].name = ''
|
||||||
|
// break
|
||||||
|
// case '城阳区':
|
||||||
|
// option.series[10].data[0].name = ''
|
||||||
|
// break
|
||||||
|
// case '李沧区':
|
||||||
|
// option.series[11].data[0].name = ''
|
||||||
|
// break
|
||||||
|
// }
|
||||||
|
// myChart.clear()
|
||||||
|
// myChart.setOption(option, true)
|
||||||
|
// })
|
||||||
myChart.on('click', function (params) {
|
myChart.on('click', function (params) {
|
||||||
console.log(params)
|
console.log(params)
|
||||||
params.event.event.stopPropagation()
|
params.event.event.stopPropagation()
|
||||||
|
|
|
@ -1,159 +1,147 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="list-box">
|
<div class="list-box">
|
||||||
<div
|
<div class="list-item" v-for="(item, i) in newDataList" :key="i" @click.stop="showChildren(item)">
|
||||||
class="list-item"
|
|
||||||
v-for="(item, i) in newDataList"
|
|
||||||
:key="i"
|
|
||||||
@click.stop="showChildren(item)"
|
|
||||||
>
|
|
||||||
<a-tooltip placement="top" :title="item.title" arrow-point-at-center>
|
<a-tooltip placement="top" :title="item.title" arrow-point-at-center>
|
||||||
<div
|
<div :class="[
|
||||||
:class="[
|
newClickData.title === item.title ? 'select' : '',
|
||||||
newClickData.title === item.title ? 'select' : '',
|
level === 1 ? 'parent' : '',
|
||||||
level === 1 ? 'parent' : '',
|
judgeLeaf(item) ? 'leaf' : '',
|
||||||
judgeLeaf(item) ? 'leaf' : '',
|
]" class="list-text">
|
||||||
]"
|
|
||||||
class="list-text"
|
|
||||||
>
|
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
<DownOutlined v-show="!item.show && !judgeLeaf(item)" />
|
<DownOutlined v-show="!item.show && !judgeLeaf(item)" />
|
||||||
<UpOutlined v-show="item.show && !judgeLeaf(item)" />
|
<UpOutlined v-show="item.show && !judgeLeaf(item)" />
|
||||||
</div>
|
</div>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<div style="margin-left: 10px" v-if="!judgeLeaf(item) && item.show">
|
<div style="margin-left: 10px" v-if="!judgeLeaf(item) && item.show">
|
||||||
<abilityDocTree
|
<abilityDocTree :dataList="item.children" @tree-click="handleTreeItem" :clickData="newClickData"
|
||||||
:dataList="item.children"
|
:level="newLevel + 1"></abilityDocTree>
|
||||||
@tree-click="handleTreeItem"
|
|
||||||
:clickData="newClickData"
|
|
||||||
:level="newLevel + 1"
|
|
||||||
></abilityDocTree>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import {
|
||||||
defineComponent,
|
defineComponent,
|
||||||
onMounted,
|
onMounted,
|
||||||
ref,
|
ref,
|
||||||
watch,
|
watch,
|
||||||
defineProps,
|
defineProps,
|
||||||
nextTick,
|
nextTick,
|
||||||
} from 'vue'
|
} from 'vue'
|
||||||
import { getDevelopDocTree } from '@/api/home'
|
import { getDevelopDocTree } from '@/api/home'
|
||||||
import { message } from 'ant-design-vue'
|
import { message } from 'ant-design-vue'
|
||||||
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
|
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dataList: {
|
dataList: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => [],
|
default: () => [],
|
||||||
|
},
|
||||||
|
level: {
|
||||||
|
type: Number,
|
||||||
|
default: 1,
|
||||||
|
},
|
||||||
|
clickData: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
''
|
||||||
},
|
},
|
||||||
level: {
|
},
|
||||||
type: Number,
|
})
|
||||||
default: 1,
|
|
||||||
},
|
|
||||||
clickData: {
|
|
||||||
type: Object,
|
|
||||||
default: () => {
|
|
||||||
''
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
// 数组
|
// 数组
|
||||||
const newDataList = ref(props.dataList)
|
const newDataList = ref(props.dataList)
|
||||||
// 级别
|
// 级别
|
||||||
const newLevel = ref(props.level)
|
const newLevel = ref(props.level)
|
||||||
|
|
||||||
const newClickData = ref(props.clickData)
|
const newClickData = ref(props.clickData)
|
||||||
|
|
||||||
// 判断是不是叶子节点
|
// 判断是不是叶子节点
|
||||||
const judgeLeaf = (item) => {
|
const judgeLeaf = (item) => {
|
||||||
if (item.children && item.children.length > 0) {
|
if (item.children && item.children.length > 0) {
|
||||||
return false
|
return false
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const showChildren = (item) => {
|
||||||
|
if (!(item.children && item.children.length > 0)) {
|
||||||
|
if (newClickData.value.title !== '') {
|
||||||
|
handleTreeItem(item)
|
||||||
} else {
|
} else {
|
||||||
return true
|
handleTreeItem({ title: '' })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (item.children && item.children.length > 0) {
|
||||||
|
item.show = !item.show
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const showChildren = (item) => {
|
watch(
|
||||||
if (!(item.children && item.children.length > 0)) {
|
() => props.dataList,
|
||||||
if (newClickData.value.title !== '') {
|
(val) => {
|
||||||
handleTreeItem(item)
|
if (val) {
|
||||||
} else {
|
newDataList.value = val
|
||||||
handleTreeItem({ title: '' })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (item.children && item.children.length > 0) {
|
|
||||||
item.show = !item.show
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
)
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.dataList,
|
() => props.clickData,
|
||||||
(val) => {
|
(val) => {
|
||||||
if (val) {
|
if (val) {
|
||||||
newDataList.value = val
|
newClickData.value = val
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
|
||||||
|
|
||||||
watch(
|
|
||||||
() => props.clickData,
|
|
||||||
(val) => {
|
|
||||||
if (val) {
|
|
||||||
newClickData.value = val
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
const emit = defineEmits(['treeClick'])
|
|
||||||
const handleTreeItem = (item) => {
|
|
||||||
emit('tree-click', item)
|
|
||||||
}
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
const emit = defineEmits(['treeClick'])
|
||||||
|
const handleTreeItem = (item) => {
|
||||||
|
emit('tree-click', item)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.list-text {
|
.list-text {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #333;
|
color: #333;
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
border-bottom: 1px solid #ccc;
|
border-bottom: 1px solid #ccc;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
/*文本不会换行*/
|
/*文本不会换行*/
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
/*当文本溢出包含元素时,以省略号表示超出的文本*/
|
/*当文本溢出包含元素时,以省略号表示超出的文本*/
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: #0058e1;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.parent {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
background: rgba(0, 135, 225, 0.1);
|
|
||||||
color: #333;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: #fff;
|
|
||||||
background: #0058e1;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaf {
|
|
||||||
font-size: 14px;
|
|
||||||
color: #555;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select {
|
|
||||||
color: #0058e1;
|
color: #0058e1;
|
||||||
font-weight: 600;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.parent {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
background: rgba(0, 135, 225, 0.1);
|
||||||
|
color: #333;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #fff;
|
||||||
|
background: #0058e1;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.leaf {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #555;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select {
|
||||||
|
color: #0058e1;
|
||||||
|
font-weight: 600;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- 联系我们 -->
|
<!-- 联系我们 -->
|
||||||
<div class="img-bg callus-box">
|
<div class="img-bg callus-box">
|
||||||
<div class="title" style="margin-bottom: 20px">
|
<!-- <div class="title" style="margin-bottom: 20px">
|
||||||
<div class="text text-white">联系我们</div>
|
<div class="text text-white">联系我们</div>
|
||||||
<div class="line line-white"></div>
|
<div class="line line-white"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
手机号:
|
手机号:
|
||||||
<span>0530-0000000</span>
|
<span>0530-0000000</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<!-- 能力上架弹窗 -->
|
<!-- 能力上架弹窗 -->
|
||||||
<a-modal
|
<a-modal
|
||||||
|
@ -95,11 +95,6 @@
|
||||||
>
|
>
|
||||||
<div class="title">组件类型选择</div>
|
<div class="title">组件类型选择</div>
|
||||||
<div class="component-type-content">
|
<div class="component-type-content">
|
||||||
<!-- <a-checkbox-group
|
|
||||||
v-model:value="value1"
|
|
||||||
name="checkboxgroup"
|
|
||||||
:options="componentType"
|
|
||||||
/> -->
|
|
||||||
<a-radio-group v-model:value="componentTypeValue">
|
<a-radio-group v-model:value="componentTypeValue">
|
||||||
<a-radio
|
<a-radio
|
||||||
@click="componentTypeValueFunction(item)"
|
@click="componentTypeValueFunction(item)"
|
||||||
|
@ -123,9 +118,7 @@
|
||||||
import TheOverallProcess from './TheOverallProcess.vue'
|
import TheOverallProcess from './TheOverallProcess.vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { message } from 'ant-design-vue'
|
import { message } from 'ant-design-vue'
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
const seviceList = ref([
|
const seviceList = ref([
|
||||||
{
|
{
|
||||||
name: '组件服务',
|
name: '组件服务',
|
||||||
|
@ -151,7 +144,6 @@
|
||||||
{
|
{
|
||||||
name: '基础设施',
|
name: '基础设施',
|
||||||
img: require('@/assets/menu/service-infrastructure.png'),
|
img: require('@/assets/menu/service-infrastructure.png'),
|
||||||
|
|
||||||
list: ['视频资源', '云资源', '感知资源'],
|
list: ['视频资源', '云资源', '感知资源'],
|
||||||
imgBG: require('../../../assets/menu/imgBG.png'),
|
imgBG: require('../../../assets/menu/imgBG.png'),
|
||||||
width: '124px',
|
width: '124px',
|
||||||
|
@ -159,13 +151,11 @@
|
||||||
{
|
{
|
||||||
name: '数据资源',
|
name: '数据资源',
|
||||||
img: require('@/assets/menu/service-data.png'),
|
img: require('@/assets/menu/service-data.png'),
|
||||||
|
|
||||||
list: ['政务信息资源'],
|
list: ['政务信息资源'],
|
||||||
imgBG: require('../../../assets/menu/imgBG-long.png'),
|
imgBG: require('../../../assets/menu/imgBG-long.png'),
|
||||||
width: '200px',
|
width: '200px',
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
|
||||||
const imgList = ref([
|
const imgList = ref([
|
||||||
{
|
{
|
||||||
name: '能力上架',
|
name: '能力上架',
|
||||||
|
@ -256,18 +246,12 @@
|
||||||
componentTypeValue.value = ''
|
componentTypeValue.value = ''
|
||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 跳转
|
// 跳转
|
||||||
const toWhere = (data) => {
|
const toWhere = (data) => {
|
||||||
console.log(data, 'wwwwwww')
|
console.log(data, 'wwwwwww')
|
||||||
if (data === '能力上架') {
|
if (data === '能力上架') {
|
||||||
visible.value = true
|
visible.value = true
|
||||||
} else if (data === '能力申请') {
|
} else if (data === '能力申请') {
|
||||||
const newpage = router.resolve({
|
|
||||||
path: '/addApplication', // 跳转的页面路由
|
|
||||||
})
|
|
||||||
window.open(newpage.href, '_blank')
|
|
||||||
} else if (data === '需求发布') {
|
|
||||||
const newpage = router.resolve({
|
const newpage = router.resolve({
|
||||||
path: '/DetailsPageconetent',
|
path: '/DetailsPageconetent',
|
||||||
query: {
|
query: {
|
||||||
|
@ -275,6 +259,11 @@
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
window.location.href = newpage.href
|
window.location.href = newpage.href
|
||||||
|
} else if (data === '需求发布') {
|
||||||
|
const newpage = router.resolve({
|
||||||
|
path: '/addApplication', // 跳转的页面路由
|
||||||
|
})
|
||||||
|
window.open(newpage.href, '_blank')
|
||||||
} else if (data === '资源下架') {
|
} else if (data === '资源下架') {
|
||||||
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle'))
|
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle'))
|
||||||
const newpage = router.resolve({
|
const newpage = router.resolve({
|
||||||
|
@ -301,18 +290,22 @@
|
||||||
height: 0.16rem;
|
height: 0.16rem;
|
||||||
width: 0.16rem;
|
width: 0.16rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-radio-inner::after {
|
.ant-radio-inner::after {
|
||||||
background-color: unset;
|
background-color: unset;
|
||||||
background: url('~@/assets/personalCenter/xuanzhong.png') no-repeat;
|
background: url('~@/assets/personalCenter/xuanzhong.png') no-repeat;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-modal-content {
|
.ant-modal-content {
|
||||||
border-radius: 0.1rem;
|
border-radius: 0.1rem;
|
||||||
|
|
||||||
.ability-to-type,
|
.ability-to-type,
|
||||||
.component-type {
|
.component-type {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-top: 0.2rem;
|
margin-top: 0.2rem;
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
margin-right: 0.2rem;
|
margin-right: 0.2rem;
|
||||||
|
@ -320,11 +313,13 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 0.26rem;
|
height: 0.26rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.component-type-content {
|
.component-type-content {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: unset;
|
height: unset;
|
||||||
border: unset;
|
border: unset;
|
||||||
background: unset;
|
background: unset;
|
||||||
|
|
||||||
.ant-radio-group {
|
.ant-radio-group {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
grid-template-columns: 1fr 1fr 1fr;
|
||||||
|
@ -340,6 +335,7 @@
|
||||||
height: unset;
|
height: unset;
|
||||||
border: unset;
|
border: unset;
|
||||||
background: unset;
|
background: unset;
|
||||||
|
|
||||||
div {
|
div {
|
||||||
margin-right: 0.15rem;
|
margin-right: 0.15rem;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -373,6 +369,7 @@
|
||||||
border: 0;
|
border: 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding-bottom: 0.2rem;
|
padding-bottom: 0.2rem;
|
||||||
|
|
||||||
button {
|
button {
|
||||||
margin-right: 0.2rem;
|
margin-right: 0.2rem;
|
||||||
border-radius: 0.08rem;
|
border-radius: 0.08rem;
|
||||||
|
@ -454,23 +451,28 @@
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.callus-box {
|
.callus-box {
|
||||||
width: 1920px;
|
width: 1920px;
|
||||||
height: 214px;
|
height: 214px;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-image: url('../../../assets/menu/callus.png');
|
background-image: url('../../../assets/menu/callus.png');
|
||||||
|
|
||||||
.list-box {
|
.list-box {
|
||||||
width: 1560px;
|
width: 1560px;
|
||||||
// height: 350px;
|
// height: 350px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p:nth-child(1) {
|
p:nth-child(1) {
|
||||||
margin-right: 100px;
|
margin-right: 100px;
|
||||||
}
|
}
|
||||||
|
@ -550,9 +552,11 @@
|
||||||
margin: 0 0 20px;
|
margin: 0 0 20px;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-v:nth-child(2n) {
|
.item-v:nth-child(2n) {
|
||||||
margin-left: 16px;
|
margin-left: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
// .item-v:last-child {
|
// .item-v:last-child {
|
||||||
// width: 200px;
|
// width: 200px;
|
||||||
// }
|
// }
|
||||||
|
|
|
@ -1,268 +1,288 @@
|
||||||
<template>
|
<template>
|
||||||
<home-header></home-header>
|
<home-header></home-header>
|
||||||
<div class="menu-container">
|
<div class="menu-container">
|
||||||
<div class="menu-box">
|
<div id="container" class="content-menu">
|
||||||
<div id="container" class="content-menu">
|
<div class="left">
|
||||||
<div class="left">
|
<div class="first-title-text doc" :style="{ color: '技术文档' === titleData.name ? '#0058e1' : '' }"
|
||||||
<div
|
@click="changeName({ name: '技术文档' })">
|
||||||
class="first-title-text"
|
技术文档
|
||||||
v-for="(data, i) in titleList"
|
</div>
|
||||||
:key="i"
|
<abilityDocTree style="max-height:320px;overflow-y:auto" :dataList="treeArray" @treeClick="treeClick"
|
||||||
@click="changeName(data)"
|
:clickData="clickData"></abilityDocTree>
|
||||||
:style="{ color: data.name === titleData.name ? '#0058e1' : '' }"
|
</div>
|
||||||
>
|
|
||||||
<div class="img" :class="data.className"></div>
|
<div class="first-title-text new-guide-box" :style="{ color: '使用手册' === titleData.name ? '#0058e1' : '' }"
|
||||||
{{ data.name }}
|
@click="changeName({ name: '使用手册' })">
|
||||||
</div>
|
<div class="guide-text">使用手册</div>
|
||||||
<abilityDocTree
|
</div>
|
||||||
:dataList="treeArray"
|
|
||||||
@treeClick="treeClick"
|
<!-- 技术文档 -->
|
||||||
:clickData="clickData"
|
<div class="right" v-if="titleData.name !== '使用手册'">
|
||||||
></abilityDocTree>
|
<div style="height: 100%">
|
||||||
|
<iframe name="iframeName" width="1300" height="100%" id="iframeId" :frameborder="0"
|
||||||
|
:src="doc_base_url + clickData.doc"></iframe>
|
||||||
</div>
|
</div>
|
||||||
<!-- 技术文档 -->
|
|
||||||
<div class="right" v-if="titleData.name !== '新手指引'">
|
|
||||||
<div style="height: 100%">
|
|
||||||
<iframe
|
|
||||||
name="iframeName"
|
|
||||||
width="1300"
|
|
||||||
height="100%"
|
|
||||||
id="iframeId"
|
|
||||||
:frameborder="0"
|
|
||||||
:src="doc_base_url + clickData.doc"
|
|
||||||
></iframe>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- 使用手册 -->
|
|
||||||
<div class="manual"><p>使用手册</p></div>
|
|
||||||
</div>
|
</div>
|
||||||
<menuBook v-if="titleData.name === '新手指引'"></menuBook>
|
|
||||||
</div>
|
</div>
|
||||||
|
<menuBook v-if="titleData.name === '使用手册'"></menuBook>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<home-footer></home-footer>
|
<home-footer v-if="footShow"></home-footer>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import HomeHeader from '@/views/home/components/header'
|
import HomeHeader from '@/views/home/components/header'
|
||||||
import abilityDocTree from './components/abilityDocTree'
|
import abilityDocTree from './components/abilityDocTree'
|
||||||
import menuBook from './components/menuBook'
|
import menuBook from './components/menuBook'
|
||||||
import { ref, onMounted } from 'vue'
|
import { ref, onMounted } from 'vue'
|
||||||
import { message } from 'ant-design-vue'
|
import { message } from 'ant-design-vue'
|
||||||
import { getDevelopDocTree } from '@/api/home'
|
import { getDevelopDocTree } from '@/api/home'
|
||||||
import HomeFooter from '@/views/newHome/components/Footer'
|
import HomeFooter from '@/views/newHome/components/Footer'
|
||||||
// import flatten from '@turf/flatten'
|
// import flatten from '@turf/flatten'
|
||||||
|
|
||||||
const titleList = ref([
|
const titleList = ref([
|
||||||
{
|
{
|
||||||
name: '新手指引',
|
name: '使用手册',
|
||||||
className: 'newGuide',
|
className: 'newGuide',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '技术文档',
|
name: '技术文档',
|
||||||
className: 'doc',
|
className: 'doc',
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
const titleData = ref(titleList.value[0])
|
const titleData = ref(titleList.value[0])
|
||||||
const clickData = ref({})
|
const clickData = ref({})
|
||||||
const treeArray = ref([])
|
const treeArray = ref([])
|
||||||
const treeArrayCopy = ref([])
|
const treeArrayCopy = ref([])
|
||||||
let typeList = ['组件服务', '应用资源', '基础设施', '数据资源', '知识库']
|
let typeList = ['组件服务', '应用资源', '基础设施', '数据资源', '知识库']
|
||||||
let doc_base_url = ref(window.SITE_CONFIG['frontUrl'])
|
let doc_base_url = ref(window.SITE_CONFIG['frontUrl'])
|
||||||
|
|
||||||
const treeClick = (item) => {
|
const treeClick = (item) => {
|
||||||
clickData.value = item
|
footShow.value = false
|
||||||
console.log('clickData------------>', item)
|
clickData.value = item
|
||||||
titleData.value = titleList.value[1]
|
console.log('clickData------------>', item)
|
||||||
}
|
titleData.value = titleList.value[1]
|
||||||
|
}
|
||||||
|
|
||||||
const getTreeData = () => {
|
const getTreeData = () => {
|
||||||
getDevelopDocTree({})
|
getDevelopDocTree({})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log('res------文档树------>', res)
|
console.log('res------文档树------>', res)
|
||||||
if (res.data.code !== 0) {
|
if (res.data.code !== 0) {
|
||||||
return message.error(res.data.msg)
|
return message.error(res.data.msg)
|
||||||
}
|
|
||||||
treeArray.value = res.data.data || []
|
|
||||||
treeArrayCopy.value = JSON.parse(JSON.stringify(treeArray.value))
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
message.error(err)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const changeName = (item) => {
|
|
||||||
titleData.value = item
|
|
||||||
if (item.name == '新手指引') {
|
|
||||||
clickData.value = {}
|
|
||||||
}
|
|
||||||
if (item.name == '技术文档') {
|
|
||||||
if (!clickData.value.title) {
|
|
||||||
clickData.value = {}
|
|
||||||
treeArray.value = []
|
|
||||||
treeArrayCopy.value.map((val, i) => {
|
|
||||||
let obj = Object.assign({}, val, {
|
|
||||||
title: val.title,
|
|
||||||
show:
|
|
||||||
(i === 0 && val.children && val.children.length > 0) ||
|
|
||||||
typeList.includes(val.title)
|
|
||||||
? true
|
|
||||||
: false,
|
|
||||||
children: [],
|
|
||||||
})
|
|
||||||
formData(val.children, obj)
|
|
||||||
treeArray.value.push(obj)
|
|
||||||
})
|
|
||||||
getFirstData(treeArrayCopy.value[0] || {})
|
|
||||||
}
|
}
|
||||||
}
|
treeArray.value = res.data.data || []
|
||||||
}
|
treeArrayCopy.value = JSON.parse(JSON.stringify(treeArray.value))
|
||||||
|
|
||||||
const formData = (children = [], dataItem) => {
|
|
||||||
children.map((item, index) => {
|
|
||||||
let _obj = Object.assign({}, item, {
|
|
||||||
title: item.title,
|
|
||||||
show:
|
|
||||||
(index === 0 && item.children && item.children.length > 0) ||
|
|
||||||
typeList.includes(item.title)
|
|
||||||
? true
|
|
||||||
: false,
|
|
||||||
children: [],
|
|
||||||
})
|
|
||||||
if (item.children && item.children.length > 0) {
|
|
||||||
formData(item.children, _obj)
|
|
||||||
}
|
|
||||||
dataItem.children.push(_obj)
|
|
||||||
})
|
})
|
||||||
}
|
.catch((err) => {
|
||||||
|
message.error(err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const footShow = ref(true)
|
||||||
|
|
||||||
const getFirstData = (firstObj = {}) => {
|
const changeName = (item) => {
|
||||||
if (firstObj && firstObj.children && firstObj.children.length > 0) {
|
titleData.value = item
|
||||||
getFirstData(firstObj.children[0])
|
if (item.name == '使用手册') {
|
||||||
} else {
|
footShow.value = true
|
||||||
clickData.value = firstObj
|
clickData.value = {}
|
||||||
|
}
|
||||||
|
if (item.name == '技术文档') {
|
||||||
|
footShow.value = false
|
||||||
|
if (!clickData.value.title) {
|
||||||
|
clickData.value = {}
|
||||||
|
treeArray.value = []
|
||||||
|
treeArrayCopy.value.map((val, i) => {
|
||||||
|
let obj = Object.assign({}, val, {
|
||||||
|
title: val.title,
|
||||||
|
show:
|
||||||
|
(i === 0 && val.children && val.children.length > 0) ||
|
||||||
|
typeList.includes(val.title)
|
||||||
|
? true
|
||||||
|
: false,
|
||||||
|
children: [],
|
||||||
|
})
|
||||||
|
formData(val.children, obj)
|
||||||
|
treeArray.value.push(obj)
|
||||||
|
})
|
||||||
|
getFirstData(treeArrayCopy.value[0] || {})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
const formData = (children = [], dataItem) => {
|
||||||
getTreeData()
|
children.map((item, index) => {
|
||||||
|
let _obj = Object.assign({}, item, {
|
||||||
|
title: item.title,
|
||||||
|
show:
|
||||||
|
(index === 0 && item.children && item.children.length > 0) ||
|
||||||
|
typeList.includes(item.title)
|
||||||
|
? true
|
||||||
|
: false,
|
||||||
|
children: [],
|
||||||
|
})
|
||||||
|
if (item.children && item.children.length > 0) {
|
||||||
|
formData(item.children, _obj)
|
||||||
|
}
|
||||||
|
dataItem.children.push(_obj)
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const getFirstData = (firstObj = {}) => {
|
||||||
|
if (firstObj && firstObj.children && firstObj.children.length > 0) {
|
||||||
|
getFirstData(firstObj.children[0])
|
||||||
|
} else {
|
||||||
|
clickData.value = firstObj
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getTreeData()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
.menu-box {
|
.menu-box {
|
||||||
// overflow: hidden;
|
height: 100%;
|
||||||
height: 100%;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.first-title-text {
|
.first-title-text {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #333;
|
color: #333;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: #0058e1;
|
color: #0058e1;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.menu-container {
|
.doc {
|
||||||
width: 100%;
|
font-weight: bold;
|
||||||
padding-top: 0.74rem;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.content-menu {
|
.menu-container {
|
||||||
width: 1800px;
|
width: 100%;
|
||||||
display: flex;
|
padding-top: 0.74rem;
|
||||||
justify-content: flex-start;
|
min-height: 1000px;
|
||||||
margin: 0 auto;
|
position: relative;
|
||||||
box-sizing: border-box;
|
}
|
||||||
// position: fixed;
|
|
||||||
// left: 50%;
|
|
||||||
// bottom: 0;
|
|
||||||
// transform: translateX(-50%);
|
|
||||||
// top: 0.6rem;
|
|
||||||
// top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.left {
|
.content-menu {
|
||||||
z-index: 10;
|
width: 1800px;
|
||||||
width: 200px;
|
display: flex;
|
||||||
padding: 20px;
|
justify-content: flex-start;
|
||||||
margin-right: 20px;
|
margin: 0 auto;
|
||||||
background: rgba(244, 245, 248, 1);
|
box-sizing: border-box;
|
||||||
overflow-y: scroll;
|
}
|
||||||
position: fixed;
|
|
||||||
top: 200px;
|
|
||||||
left: 90px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right {
|
.left {
|
||||||
width: 1300px;
|
width: 200px;
|
||||||
height: calc(100% - 20px);
|
padding-left: 10px;
|
||||||
position: absolute;
|
padding-top: 10px;
|
||||||
top: 10px;
|
background: #f4f5f8;
|
||||||
left: 300px;
|
position: absolute;
|
||||||
min-height: 600px;
|
top: 300px;
|
||||||
}
|
left: 85px;
|
||||||
.manual {
|
max-height: 400px;
|
||||||
cursor: pointer;
|
}
|
||||||
z-index: 10;
|
|
||||||
width: 74px;
|
|
||||||
height: 136px;
|
|
||||||
position: fixed;
|
|
||||||
top: 200px;
|
|
||||||
right: 200px;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
background-image: url('../../assets/menu/manual.png');
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
padding: unset !important;
|
|
||||||
p {
|
|
||||||
color: #005be1;
|
|
||||||
font-size: 20px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
width: 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar {
|
.new-guide-box {
|
||||||
right: 0 !important;
|
position: absolute;
|
||||||
}
|
top: 300px;
|
||||||
|
right: 205px;
|
||||||
|
width: 74px;
|
||||||
|
height: 136px;
|
||||||
|
background: url('~@/assets/menu/new-bg.png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.content {
|
.guide-text {
|
||||||
right: 16rem !important;
|
width: 25px;
|
||||||
left: 0 !important;
|
text-align: center;
|
||||||
}
|
word-wrap: break-word;
|
||||||
|
font-size: 20px;
|
||||||
|
color: #0058e1;
|
||||||
|
}
|
||||||
|
|
||||||
.img {
|
.right {
|
||||||
height: 20px;
|
width: 1300px;
|
||||||
|
height: calc(100% - 20px);
|
||||||
|
position: absolute;
|
||||||
|
min-height: 600px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.left {
|
||||||
|
width: 200px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-top: 10px;
|
||||||
|
background: #f4f5f8;
|
||||||
|
position: absolute;
|
||||||
|
top: 300px;
|
||||||
|
left: 85px;
|
||||||
|
max-height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.manual {
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 10;
|
||||||
|
width: 74px;
|
||||||
|
height: 136px;
|
||||||
|
position: absolute;
|
||||||
|
top: 200px;
|
||||||
|
right: 140px;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-image: url('../../assets/menu/manual.png');
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: unset !important;
|
||||||
|
|
||||||
|
p {
|
||||||
|
color: #005be1;
|
||||||
|
font-size: 20px;
|
||||||
|
margin-bottom: 0;
|
||||||
width: 20px;
|
width: 20px;
|
||||||
margin-right: 8px;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.doc {
|
.sidebar {
|
||||||
background: url('~@/assets/capabilityCloud/doc.png') no-repeat;
|
right: 0 !important;
|
||||||
background-size: 100%;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.newGuide {
|
.newGuide {
|
||||||
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
|
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.new-menu-box {
|
.content {
|
||||||
height: 100%;
|
right: 16rem !important;
|
||||||
display: flex;
|
left: 0 !important;
|
||||||
align-items: center;
|
}
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rela {
|
.img {
|
||||||
width: 100%;
|
height: 20px;
|
||||||
height: 100%;
|
width: 20px;
|
||||||
position: relative;
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.rela {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.new-menu-box {
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -560,7 +560,7 @@
|
||||||
height: 0.24rem;
|
height: 0.24rem;
|
||||||
width: 0.24rem;
|
width: 0.24rem;
|
||||||
background: url('~@/assets/home/shenqing.png') no-repeat;
|
background: url('~@/assets/home/shenqing.png') no-repeat;
|
||||||
background-size: cover;
|
background-size: contain;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -568,5 +568,7 @@
|
||||||
height: 0.24rem;
|
height: 0.24rem;
|
||||||
width: 0.24rem;
|
width: 0.24rem;
|
||||||
background: url('~@/assets/home/shangjia.png') no-repeat;
|
background: url('~@/assets/home/shangjia.png') no-repeat;
|
||||||
|
background-size: contain;
|
||||||
|
background-position: center;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-07-12 09:42:44
|
* @Date: 2022-07-12 09:42:44
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-08-01 10:49:31
|
* @LastEditTime: 2022-08-04 10:41:06
|
||||||
* @Description:我的申请 能力申请 查看详情
|
* @Description:我的申请 能力申请 查看详情
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -52,7 +52,37 @@
|
||||||
<span class="img"></span>
|
<span class="img"></span>
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="oddNumbers">子单号:{{ item.instanceId }}</div>
|
<div
|
||||||
|
style="
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div class="oddNumbers">子单号:{{ item.instanceId }}</div>
|
||||||
|
<div style="display: flex; align-items: center">
|
||||||
|
<a-button
|
||||||
|
type="primary"
|
||||||
|
@click="modify(props.refObj.id, item)"
|
||||||
|
v-if="item.backToFirst"
|
||||||
|
>
|
||||||
|
修改
|
||||||
|
</a-button>
|
||||||
|
<a-popconfirm
|
||||||
|
v-if="!item.ended"
|
||||||
|
title="是否终止此流程?"
|
||||||
|
ok-text="是"
|
||||||
|
cancel-text="否"
|
||||||
|
@confirm="endThis(item.instanceId)"
|
||||||
|
@cancel="cancel"
|
||||||
|
>
|
||||||
|
<a-button type="primary" danger style="margin-left: 10px">
|
||||||
|
流程终止
|
||||||
|
</a-button>
|
||||||
|
</a-popconfirm>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="box" v-if="item.list.length > 0">
|
<div class="box" v-if="item.list.length > 0">
|
||||||
<div class="ability" v-for="val in item.list" :key="val.id">
|
<div class="ability" v-for="val in item.list" :key="val.id">
|
||||||
<div
|
<div
|
||||||
|
@ -82,30 +112,32 @@
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="ability-top">
|
<div class="ability-top">
|
||||||
<div class="name">
|
<div class="name">
|
||||||
{{ val.name }}
|
<div class="name">
|
||||||
<span class="type">
|
<span class="channelName">{{ val.name }}</span>
|
||||||
{{
|
<span class="type">
|
||||||
val.type == '应用资源'
|
{{
|
||||||
? '应用资源'
|
val.type == '应用资源'
|
||||||
: val.infoList.filter(
|
? '应用资源'
|
||||||
(val2) => val2.attrType == '组件类型'
|
: val.infoList.filter(
|
||||||
)[0].attrValue == '智能算法'
|
(val2) => val2.attrType == '组件类型'
|
||||||
? '智能算法'
|
)[0].attrValue == '智能算法'
|
||||||
: val.infoList.filter(
|
? '智能算法'
|
||||||
(val2) => val2.attrType == '组件类型'
|
: val.infoList.filter(
|
||||||
)[0].attrValue == '图层服务'
|
(val2) => val2.attrType == '组件类型'
|
||||||
? '图层服务'
|
)[0].attrValue == '图层服务'
|
||||||
: val.infoList.filter(
|
? '图层服务'
|
||||||
(val2) => val2.attrType == '组件类型'
|
: val.infoList.filter(
|
||||||
)[0].attrValue == '开发组件'
|
(val2) => val2.attrType == '组件类型'
|
||||||
? '开发组件'
|
)[0].attrValue == '开发组件'
|
||||||
: val.infoList.filter(
|
? '开发组件'
|
||||||
(val2) => val2.attrType == '组件类型'
|
: val.infoList.filter(
|
||||||
)[0].attrValue == '业务组件'
|
(val2) => val2.attrType == '组件类型'
|
||||||
? '业务组件'
|
)[0].attrValue == '业务组件'
|
||||||
: '--'
|
? '业务组件'
|
||||||
}}
|
: '--'
|
||||||
</span>
|
}}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div></div>
|
<div></div>
|
||||||
<!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> -->
|
<!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> -->
|
||||||
|
@ -127,7 +159,7 @@
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="ability-top">
|
<div class="ability-top">
|
||||||
<div class="name">
|
<div class="name">
|
||||||
{{ val.channelName }}
|
<span class="channelName">{{ val.channelName }}</span>
|
||||||
<span class="type">基础设施</span>
|
<span class="type">基础设施</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -155,11 +187,24 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, defineProps } from 'vue'
|
import { ref, defineProps, reactive } from 'vue'
|
||||||
|
import mybus from '@/myplugins/mybus'
|
||||||
|
import { message } from 'ant-design-vue'
|
||||||
|
import { endProcess, getApplyForm } from '@/api/personalCenter.js'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
const router = useRouter()
|
||||||
const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
|
const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
refObj: { type: Object, default: null },
|
refObj: { type: Object, default: null },
|
||||||
})
|
})
|
||||||
|
const dept = reactive({})
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
if (infrastructure) {
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
dept.deptId = infrastructure.deptId
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
dept.deptName = infrastructure.deptName
|
||||||
|
}
|
||||||
const showThis = () => {
|
const showThis = () => {
|
||||||
window.open(
|
window.open(
|
||||||
window.SITE_CONFIG.previewUrl +
|
window.SITE_CONFIG.previewUrl +
|
||||||
|
@ -169,6 +214,80 @@
|
||||||
}
|
}
|
||||||
const showArr = ref([])
|
const showArr = ref([])
|
||||||
console.log(props.refObj, '=====================================')
|
console.log(props.refObj, '=====================================')
|
||||||
|
const endThis = (instanceId) => {
|
||||||
|
endProcess({ instanceId: instanceId }).then((res) => {
|
||||||
|
if (res.data.code == 0) {
|
||||||
|
message.success('流程终止成功!')
|
||||||
|
mybus.emit('closeModal', { type: '能力申请', index: 0 })
|
||||||
|
} else {
|
||||||
|
message.warning('流程终止失败!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const modify = (id, item) => {
|
||||||
|
getApplyForm(id).then((res) => {
|
||||||
|
console.log('修改==============>', res.data.data, item)
|
||||||
|
if (item.list.length > 0) {
|
||||||
|
let arr = []
|
||||||
|
item.list.map((val) => {
|
||||||
|
arr.push({
|
||||||
|
delFlag: val.delFlag,
|
||||||
|
description: val.description,
|
||||||
|
resourceId: val.id,
|
||||||
|
resourceName: val.name,
|
||||||
|
time: val.createDate,
|
||||||
|
type: val.type,
|
||||||
|
componentType:
|
||||||
|
(val.infoList.filter((val) => val.attrType == '组件类型')[0] &&
|
||||||
|
val.infoList.filter((val) => val.attrType == '组件类型')[0]
|
||||||
|
.attrValue) ||
|
||||||
|
'',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
localStorage.setItem(
|
||||||
|
'applyList',
|
||||||
|
JSON.stringify([
|
||||||
|
{
|
||||||
|
arr: arr,
|
||||||
|
deptId: item.name,
|
||||||
|
deptName: item.name,
|
||||||
|
},
|
||||||
|
])
|
||||||
|
)
|
||||||
|
router.push({
|
||||||
|
path: '/apply',
|
||||||
|
query: {
|
||||||
|
id: id,
|
||||||
|
taskId: item.instanceId,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
} else if (item.list2.length > 0) {
|
||||||
|
let arr = [
|
||||||
|
{
|
||||||
|
arr: [
|
||||||
|
{
|
||||||
|
description: '',
|
||||||
|
note1: JSON.stringify(item.list2),
|
||||||
|
resourceId: '1522550195055828996',
|
||||||
|
resourceName: '摄像头列表',
|
||||||
|
type: '基础设施',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
deptId: dept.deptId,
|
||||||
|
deptName: dept.deptName,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
localStorage.setItem('applyList', JSON.stringify(arr))
|
||||||
|
router.push({
|
||||||
|
path: '/apply',
|
||||||
|
query: {
|
||||||
|
id: id,
|
||||||
|
taskId: item.instanceId,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
if (props.refObj.resourceApplication) {
|
if (props.refObj.resourceApplication) {
|
||||||
showArr.value = []
|
showArr.value = []
|
||||||
for (const key in props.refObj.resourceApplication) {
|
for (const key in props.refObj.resourceApplication) {
|
||||||
|
@ -177,6 +296,7 @@
|
||||||
obj.name = key
|
obj.name = key
|
||||||
props.refObj.resourceApplication[key].map((item) => {
|
props.refObj.resourceApplication[key].map((item) => {
|
||||||
obj.instanceId = item.instanceId
|
obj.instanceId = item.instanceId
|
||||||
|
obj.backToFirst = item.backToFirst
|
||||||
obj.ended = item.ended
|
obj.ended = item.ended
|
||||||
obj.approveStatus = item.approveStatus
|
obj.approveStatus = item.approveStatus
|
||||||
if (item.resources.length > 0) {
|
if (item.resources.length > 0) {
|
||||||
|
@ -318,15 +438,21 @@
|
||||||
.name {
|
.name {
|
||||||
width: 6rem;
|
width: 6rem;
|
||||||
height: 0.2rem;
|
height: 0.2rem;
|
||||||
overflow: hidden;
|
display: flex;
|
||||||
text-overflow: ellipsis;
|
.channelName {
|
||||||
display: -webkit-box;
|
max-width: 5rem;
|
||||||
-webkit-line-clamp: 1;
|
height: 0.2rem;
|
||||||
-webkit-box-orient: vertical;
|
overflow: hidden;
|
||||||
word-break: break-all;
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 1;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
.type {
|
.type {
|
||||||
background: #0087ff;
|
background: #0087ff;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
line-height: 14px;
|
||||||
padding: 2px 10px;
|
padding: 2px 10px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-left: 0.1rem;
|
margin-left: 0.1rem;
|
||||||
|
|
|
@ -304,7 +304,7 @@
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
// import qs from 'qs'
|
// import qs from 'qs'
|
||||||
import { onMounted, reactive, ref } from 'vue'
|
import { onMounted, reactive, ref, onBeforeUnmount } from 'vue'
|
||||||
import {
|
import {
|
||||||
getMyProcessInstancePage,
|
getMyProcessInstancePage,
|
||||||
// getTaskHandleDetailInfo,
|
// getTaskHandleDetailInfo,
|
||||||
|
@ -325,6 +325,7 @@
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { message } from 'ant-design-vue'
|
import { message } from 'ant-design-vue'
|
||||||
import ApplyDetails from '@/views/personalCenter/components/ApplyDetails'
|
import ApplyDetails from '@/views/personalCenter/components/ApplyDetails'
|
||||||
|
import mybus from '@/myplugins/mybus'
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
let typeList = ref([
|
let typeList = ref([
|
||||||
'能力申请',
|
'能力申请',
|
||||||
|
@ -755,6 +756,13 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
mybus.on('closeModal', (obj) => {
|
||||||
|
detailsVisible.value = false
|
||||||
|
changeType(obj.type, obj.index)
|
||||||
|
})
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
mybus.off('closeModal')
|
||||||
|
})
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getApplyList()
|
getApplyList()
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,12 +2,27 @@
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-07-12 09:42:44
|
* @Date: 2022-07-12 09:42:44
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-07-14 16:25:57
|
* @LastEditTime: 2022-08-02 15:48:15
|
||||||
* @Description:我的申请 能力申请 查看详情
|
* @Description:我的申请 能力申请 查看详情
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<div class="title">基本信息</div>
|
<div
|
||||||
|
style="display: flex; justify-content: space-between; align-items: center"
|
||||||
|
>
|
||||||
|
<div class="title">基本信息</div>
|
||||||
|
<a-popconfirm
|
||||||
|
v-if="!props.refObj.ended"
|
||||||
|
title="是否终止此流程?"
|
||||||
|
ok-text="是"
|
||||||
|
cancel-text="否"
|
||||||
|
@confirm="endThis"
|
||||||
|
@cancel="cancel"
|
||||||
|
>
|
||||||
|
<a-button type="primary" danger>流程终止</a-button>
|
||||||
|
</a-popconfirm>
|
||||||
|
<div v-else></div>
|
||||||
|
</div>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<div>
|
<div>
|
||||||
<p class="item">
|
<p class="item">
|
||||||
|
@ -29,10 +44,23 @@
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, defineProps } from 'vue'
|
import { ref, defineProps } from 'vue'
|
||||||
|
import mybus from '@/myplugins/mybus'
|
||||||
|
import { message } from 'ant-design-vue'
|
||||||
|
import { endProcess } from '@/api/personalCenter.js'
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
refObj: { type: Object, default: null },
|
refObj: { type: Object, default: null },
|
||||||
})
|
})
|
||||||
console.log(props.refObj, '=====================================')
|
console.log(props.refObj, '=====================================')
|
||||||
|
const endThis = () => {
|
||||||
|
endProcess({ instanceId: props.refObj.processInstanceId }).then((res) => {
|
||||||
|
if (res.data.code == 0) {
|
||||||
|
message.success('流程终止成功!')
|
||||||
|
mybus.emit('closeModal', { type: '能力上架', index: 2 })
|
||||||
|
} else {
|
||||||
|
message.warning('流程终止失败!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
// if (props.refObj.resourceApplication) {
|
// if (props.refObj.resourceApplication) {
|
||||||
// showArr.value = []
|
// showArr.value = []
|
||||||
// for (const key in props.refObj.resourceApplication) {
|
// for (const key in props.refObj.resourceApplication) {
|
||||||
|
|
|
@ -98,9 +98,24 @@
|
||||||
label="应用领域"
|
label="应用领域"
|
||||||
name="detailsField"
|
name="detailsField"
|
||||||
style="width: 6.93rem"
|
style="width: 6.93rem"
|
||||||
:rules="[{ required: true, message: '请选择应用领域' }]"
|
:rules="[
|
||||||
|
{
|
||||||
|
required:
|
||||||
|
formName.detailsType === '应用资源' ||
|
||||||
|
formName.detailsType === '组件服务'
|
||||||
|
? true
|
||||||
|
: false,
|
||||||
|
message: '请选择应用领域',
|
||||||
|
},
|
||||||
|
]"
|
||||||
>
|
>
|
||||||
<a-select
|
<a-select
|
||||||
|
:disabled="
|
||||||
|
formName.detailsType === '应用资源' ||
|
||||||
|
formName.detailsType === '组件服务'
|
||||||
|
? false
|
||||||
|
: true
|
||||||
|
"
|
||||||
v-model:value="formName.detailsField"
|
v-model:value="formName.detailsField"
|
||||||
:options="applicationSceneOpthion"
|
:options="applicationSceneOpthion"
|
||||||
mode="tags"
|
mode="tags"
|
||||||
|
|