Browse Source

字段优化

master
si@aidatagov.com 3 weeks ago
parent
commit
a2bd049a25
  1. 80
      vue-fastapi-backend/module_admin/dao/datastd_dao.py
  2. 15
      vue-fastapi-backend/module_admin/entity/do/datastd_do.py
  3. 12
      vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py
  4. 8
      vue-fastapi-backend/module_admin/service/datastd_service.py
  5. 16
      vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue
  6. 14
      vue-fastapi-frontend/src/views/datastd/main/index.vue
  7. 8
      vue-fastapi-frontend/src/views/datastd/stdcode/codeStdMap.vue
  8. 77
      vue-fastapi-frontend/src/views/datastd/stddict/AddEditForm.vue
  9. 92
      vue-fastapi-frontend/src/views/datastd/stddict/index.vue
  10. 100
      vue-fastapi-frontend/src/views/system/flow/dataStdDictAppr.vue
  11. 20
      vue-fastapi-frontend/src/views/system/flow/dataStdMainAppr.vue

80
vue-fastapi-backend/module_admin/dao/datastd_dao.py

@ -359,8 +359,8 @@ class DataStdDao:
filters.append(DataStdDict.data_dict_vest == query_object.data_dict_vest)
if query_object.src_sys:
filters.append(DataStdDict.src_sys == query_object.src_sys)
if query_object.data_dict_type:
filters.append(DataStdDict.data_dict_type == query_object.data_dict_type)
if query_object.data_dict_data_type:
filters.append(DataStdDict.data_dict_data_type == query_object.data_dict_data_type)
if query_object.data_dict_stat:
filters.append(DataStdDict.data_dict_stat == query_object.data_dict_stat)
c1 = aliased(SysDept) # 技术部门
@ -376,22 +376,14 @@ class DataStdDao:
DataStdDict.data_dict_eng_name,
DataStdDict.data_dict_cn_name,
DataStdDict.data_dict_vest,
DataStdDict.data_dict_type,
DataStdDict.data_dict_data_type,
DataStdDict.src_sys,
DataStdDict.src_sys,
DataStdDict.data_dict_busi_mean,
DataStdDict.data_dict_data_type,
DataStdDict.data_std_no,
DataStdDict.data_std_cn_name,
DataStdDict.data_dict_stat,
DataStdDict.data_std_busi_ownership_dept,
DataStdDict.data_std_it_ownership_dept,
DataStdDict.buss_user,
DataStdDict.tech_user,
c1.dept_name.label("tech_dept_name"),
c2.dept_name.label("buss_dept_name")).select_from(DataStdDict)
.join(c1,c1.dept_id ==DataStdDict.data_std_it_ownership_dept, isouter=True)
.join(c2,c2.dept_id ==DataStdDict.data_std_busi_ownership_dept, isouter=True)
DataStdDict.data_dict_stat
).select_from(DataStdDict)
.where(*filters)
.order_by(desc(DataStdDict.create_time)) # 按创建时间降序排序
)
@ -447,7 +439,7 @@ class DataStdDao:
DataStdDict.data_dict_stat == query_object.data_dict_stat if query_object.data_dict_stat else True,
DataStdDict.data_std_no == query_object.data_std_no if query_object.data_std_no else True,
DataStdDict.src_sys == query_object.src_sys if query_object.src_sys else True,
DataStdDict.data_dict_type == query_object.data_dict_type if query_object.data_dict_type else True,
DataStdDict.data_dict_data_type == query_object.data_dict_data_type if query_object.data_dict_data_type else True,
)
)
).scalars().first()
@ -455,16 +447,16 @@ class DataStdDao:
# 数据标准目录
@classmethod
async def get_catalog_by_id(cls, db: AsyncSession, belt_data_std_content: int):
async def get_catalog_by_id(cls, db: AsyncSession, content_onum: int):
"""
根据目录ID获取目录详细信息
:param db: orm对象
:param belt_data_std_content: 目录ID
:param content_onum: 目录ID
:return: 目录信息对象
"""
catalog_info = (
(await db.execute(select(DataAstContent).where(DataAstContent.belt_data_std_content == belt_data_std_content , DataAstContent.content_stat == 1)))
(await db.execute(select(DataAstContent).where(DataAstContent.content_onum == content_onum , DataAstContent.content_stat == 1)))
.scalars()
.first()
)
@ -505,7 +497,7 @@ class DataStdDao:
# 创建别名对象
t2 = aliased(DataAstContent, name='t2') # 正确使用aliased创建别名
subquery = (
select(DataAstContent.belt_data_std_content)
select(DataAstContent.content_onum)
.where(
DataAstContent.content_stat == '1',
DataAstContent.leaf_node_flag == 0,
@ -513,7 +505,7 @@ class DataStdDao:
select(1)
.select_from(t2) # 使用别名后的表
.where(
t2.supr_content_onum == DataAstContent.belt_data_std_content,
t2.supr_content_onum == DataAstContent.content_onum,
t2.content_stat == '1'
)
.exists() # 添加exists()方法
@ -523,7 +515,7 @@ class DataStdDao:
stmt = (
update(DataAstContent)
.where(DataAstContent.belt_data_std_content.in_(subquery))
.where(DataAstContent.content_onum.in_(subquery))
.values(leaf_node_flag=1, upd_time=datetime.now())
)
await db.execute(stmt)
@ -554,7 +546,7 @@ class DataStdDao:
# 创建 ORM 模型实例
processed_child = dict(child_dict)
processed_child['belt_data_std_content'] = db_catalog.belt_data_std_content
processed_child['content_onum'] = db_catalog.content_onum
db_child = DataAstContentRela(**processed_child)
db.add(db_child)
@ -570,10 +562,10 @@ class DataStdDao:
:param catalog: 需要更新的目录字典
:return:
"""
belt_data_std_content = catalog['belt_data_std_content']
content_onum = catalog['content_onum']
stmt = (
update(DataAstContent)
.where(DataAstContent.belt_data_std_content == belt_data_std_content)
.where(DataAstContent.content_onum == content_onum)
.values(
leaf_node_flag=catalog['leaf_node_flag']
)
@ -589,11 +581,11 @@ class DataStdDao:
:param catalog: 需要更新的目录字典
:return:
"""
belt_data_std_content = catalog['belt_data_std_content']
content_onum = catalog['content_onum']
stmt = (
update(DataAstContent)
.where(DataAstContent.belt_data_std_content == belt_data_std_content)
.where(DataAstContent.content_onum == content_onum)
.values(
content_name=catalog['content_name'],
content_stat=catalog['content_stat'],
@ -615,7 +607,7 @@ class DataStdDao:
update(DataAstContentRela)
.where(DataAstContentRela.rela_onum == rela_onum)
.values(
belt_data_std_content=child.get('belt_data_std_content'),
content_onum=child.get('content_onum'),
ast_onum=child.get('ast_onum'),
rela_type=child.get('rela_type'),
rela_eff_begn_date=child.get('rela_eff_begn_date'),
@ -626,7 +618,7 @@ class DataStdDao:
await db.execute(st)
await cls.update_leaf_node_flag(db)
else:
child['belt_data_std_content'] = belt_data_std_content
child['content_onum'] = content_onum
db_child = DataAstContentRela(**child)
db.add(db_child)
await db.flush()
@ -645,7 +637,7 @@ class DataStdDao:
content_onums = catalog.content_onums.split(',')
await db.execute(
update(DataAstContentRela)
.where(DataAstContentRela.belt_data_std_content.in_(content_onums))
.where(DataAstContentRela.content_onum.in_(content_onums))
.values(
rela_status=0,
rela_eff_end_date=datetime.now()
@ -653,7 +645,7 @@ class DataStdDao:
)
await db.execute(
update(DataAstContent)
.where(DataAstContent.belt_data_std_content.in_(content_onums))
.where(DataAstContent.content_onum.in_(content_onums))
.values(
content_stat=0,
upd_time=datetime.now()
@ -672,11 +664,11 @@ class DataStdDao:
:param catalog: 需要更新的目录字典
:return:
"""
# belt_data_std_content = moved_catalog_data['belt_data_std_content']
# content_onum = moved_catalog_data['content_onum']
stmt = (
update(DataAstContent)
.where(DataAstContent.belt_data_std_content == moved_catalog_data['belt_data_std_content'] , DataAstContent.supr_content_onum == moved_catalog_data['supr_content_onum'])
.where(DataAstContent.content_onum == moved_catalog_data['content_onum'] , DataAstContent.supr_content_onum == moved_catalog_data['supr_content_onum'])
.values(
supr_content_onum=moved_catalog_data['supr_content_onum_after'],
upd_time=datetime.now()
@ -697,9 +689,9 @@ class DataStdDao:
# stmt = (
# update(DataAstContent)
# .where(DataAstContent.belt_data_std_content == merge_catalog_data['belt_data_std_content'] , DataAstContent.supr_content_onum == merge_catalog_data['supr_content_onum'])
# .where(DataAstContent.content_onum == merge_catalog_data['content_onum'] , DataAstContent.supr_content_onum == merge_catalog_data['supr_content_onum'])
# .values(
# belt_data_std_content=merge_catalog_data['content_onum_after'],
# content_onum=merge_catalog_data['content_onum_after'],
# supr_content_onum=merge_catalog_data['supr_content_onum_after'],
# upd_time=datetime.now()
# ) )
@ -707,9 +699,9 @@ class DataStdDao:
# await db.execute(stmt)
stmt1 = (
update(DataAstContentRela)
.where( DataAstContentRela.belt_data_std_content == merge_catalog_data['belt_data_std_content'] and DataAstContentRela.rela_status == 1 )
.where( DataAstContentRela.content_onum == merge_catalog_data['content_onum'] and DataAstContentRela.rela_status == 1 )
.values(
belt_data_std_content=merge_catalog_data['content_onum_after'],
content_onum=merge_catalog_data['content_onum_after'],
rela_eff_begn_date=datetime.now()
)
)
@ -717,7 +709,7 @@ class DataStdDao:
stmt2 = (
update(DataAstContent)
.where(DataAstContent.belt_data_std_content == merge_catalog_data['belt_data_std_content'] , DataAstContent.supr_content_onum == merge_catalog_data['supr_content_onum'])
.where(DataAstContent.content_onum == merge_catalog_data['content_onum'] , DataAstContent.supr_content_onum == merge_catalog_data['supr_content_onum'])
.values( content_stat = '0' )
)
await db.execute(stmt2)
@ -735,7 +727,7 @@ class DataStdDao:
stmt = (
update(DataAstContentRela)
.where(DataAstContentRela.rela_onum == removerel_catalog_data['rela_onum'] , DataAstContentRela.belt_data_std_content == removerel_catalog_data['belt_data_std_content'])
.where(DataAstContentRela.rela_onum == removerel_catalog_data['rela_onum'] , DataAstContentRela.content_onum == removerel_catalog_data['content_onum'])
.values(
rela_status=removerel_catalog_data['rela_status']
) )
@ -756,9 +748,9 @@ class DataStdDao:
stmt = (
update(DataAstContentRela)
.where(DataAstContentRela.rela_onum == moverel_catalog_data['rela_onum'] , DataAstContentRela.belt_data_std_content == moverel_catalog_data['belt_data_std_content'])
.where(DataAstContentRela.rela_onum == moverel_catalog_data['rela_onum'] , DataAstContentRela.content_onum == moverel_catalog_data['content_onum'])
.values(
belt_data_std_content=moverel_catalog_data['content_onum_after'],
content_onum=moverel_catalog_data['content_onum_after'],
rela_eff_end_date=datetime.now()
) )
@ -779,16 +771,16 @@ class DataStdDao:
# 修改子查询部分
subquery_t1 = (
select(DataAstContentRela)
.where(DataAstContentRela.upd_prsn == query_object.upd_prsn, DataAstContentRela.belt_data_std_content == '2' and DataAstContentRela.rela_status == '1')
.where(DataAstContentRela.upd_prsn == query_object.upd_prsn, DataAstContentRela.content_onum == '2' and DataAstContentRela.rela_status == '1')
.union_all(
select(DataAstContentRela)
.where(DataAstContentRela.belt_data_std_content != '2' and DataAstContentRela.rela_status == '1')
.where(DataAstContentRela.content_onum != '2' and DataAstContentRela.rela_status == '1')
)
).alias('subquery_t1') # 为子查询分配唯一别名
query = (
select(
DataAstContent.belt_data_std_content,
DataAstContent.content_onum,
DataAstContent.content_name,
DataAstContent.content_stat,
DataAstContent.content_intr,
@ -807,9 +799,9 @@ class DataStdDao:
)
.distinct()
.select_from(DataAstContent)
.outerjoin(subquery_t1, DataAstContent.belt_data_std_content == subquery_t1.c.belt_data_std_content) # 明确使用子查询别名
.outerjoin(subquery_t1, DataAstContent.content_onum == subquery_t1.c.content_onum) # 明确使用子查询别名
.where(DataAstContent.content_stat == 1)
.order_by(DataAstContent.belt_data_std_content)
.order_by(DataAstContent.content_onum)
)
# 使用分页工具进行查询

15
vue-fastapi-backend/module_admin/entity/do/datastd_do.py

@ -65,12 +65,11 @@ class DataStdDict(Base):
data_dict_cn_name = Column(String(200), default=None, comment='字典中文名')
data_dict_vest = Column(String(10), default=None, comment='字典归属(sys:系统级 company:公司级)')
data_dict_type = Column(String(1), default=None, comment='字典类型(0:基础数据 1:指标数据)')
src_sys = Column(String(50), default=None, comment='归属系统')
src_sys = Column(Integer, default=None, comment='归属系统')
data_dict_busi_mean = Column(String(200), default=None, comment='字典业务定义')
data_dict_data_type = Column(String(20), default=None, comment='数据类型')
data_std_no = Column(String(50), default=None, comment='数据标准编号')
src_sys_tab_fld_name = Column(String(1000), default=None, comment='来源系统表字段名')
data_std_cn_name = Column(String(50), default=None, comment='数据标准名称')
data_dict_stat = Column(String(1), default=None, comment='字典状态(1:有效 0:无效)')
class DataStdDictAppr(Base):
@ -91,14 +90,10 @@ class DataStdDictAppr(Base):
data_dict_type = Column(String(1), default=None, comment='字典类型(0:基础数据 1:指标数据)')
src_sys = Column(String(50), default=None, comment='归属系统')
data_dict_busi_mean = Column(String(200), default=None, comment='字典业务定义')
data_type = Column(String(20), default=None, comment='数据类型')
data_std_no = Column(String(50), default=None, comment='数据标准编号')
data_std_cn_name = Column(String(50), default=None, comment='数据标准名称')
data_dict_stat = Column(String(1), default=None, comment='字典状态(1:有效 0:无效)')
data_std_busi_ownership_dept = Column(BigInteger, default=None, comment='业务认责部门')
data_std_it_ownership_dept = Column(BigInteger, default=None, comment='技术认责部门')
buss_user = Column(String(20), default=None, comment='业务认责人员')
tech_user = Column(String(20), default=None, comment='技术认责人员')
data_dict_data_type = Column(String(20), default=None, comment='数据类型')
src_sys_tab_fld_name = Column(String(1000), default=None, comment='来源系统表字段名')
changeType = Column(String(10), default=None, comment='变更类型')
flowId = Column(String(50), default=None, comment='审批Id')
oldInstId = Column(String(50), default=None, comment='原始正式id')
@ -108,7 +103,7 @@ class DataStdDictAppr(Base):
class DataAstContent(Base):
__tablename__ = "t_data_std_content"
belt_data_std_content = Column(Integer, primary_key=True, autoincrement=True, comment='目录序号')
content_onum = Column(Integer, primary_key=True, autoincrement=True, comment='目录序号')
content_name = Column(String(255), nullable=False, comment='目录名称')
content_stat = Column(String(10), nullable=False, comment='目录状态(有效/废弃/停用)')
content_intr = Column(Text, comment='目录简介')
@ -125,7 +120,7 @@ class DataAstContentRela(Base):
__tablename__ = "t_data_std_content_rela"
rela_onum = Column(Integer, primary_key=True, autoincrement=True, comment='关系序号')
belt_data_std_content = Column(Integer, nullable=False, comment='目录序号')
content_onum = Column(Integer, nullable=False, comment='目录序号')
ast_onum = Column(Integer, nullable=False, comment='资产序号')
rela_type = Column(String(50), default='归属关系', comment='关系类型')
rela_eff_begn_date = Column(Date, nullable=True, comment='关系生效开始日期')

12
vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py

@ -72,17 +72,13 @@ class DataStdDictModel(BaseModel):
data_dict_cn_name: Optional[str] = Field(default=None, description='字典中文名')
data_dict_vest: Optional[str] = Field(default=None, description='字典归属(sys:系统级 company:公司级)')
data_dict_type: Optional[str] = Field(default=None, description='字典类型(0:基础数据 1:指标数据)')
src_sys: Optional[str] = Field(default=None, description='归属系统')
src_sys: Optional[int] = Field(default=None, description='归属系统')
data_dict_busi_mean: Optional[str] = Field(default=None, description='字典业务定义')
data_dict_data_type: Optional[str] = Field(default=None, description='数据类型')
src_sys_tab_fld_name: Optional[str] = Field(default=None, description='来源系统表字段名')
data_std_no: Optional[str] = Field(default=None, description='数据标准编号')
data_std_cn_name: Optional[str] = Field(default=None, description='数据标准名称')
data_dict_stat: Optional[str] = Field(default=None, description='字典状态(1:有效 0:无效)')
data_std_busi_ownership_dept: Optional[int] = Field(default=None, description='业务认责部门')
data_std_it_ownership_dept: Optional[int] = Field(default=None, description='技术认责部门')
buss_user: Optional[str] = Field(default=None, description='业务认责人员')
tech_user: Optional[str] = Field(default=None, description='技术认责人员')
@as_query
class DataStdDictPageQueryModel(DataStdDictModel):
"""
@ -117,8 +113,8 @@ class DataStdMainModel(BaseModel):
cd_no: Optional[str] = Field(default=None, description='代码编号')
cd_id: Optional[str] = Field(default=None, description='代码id')
std_status: Optional[str] = Field(default=None, description='标准状态(1:有效 0:无效)')
data_std_busi_ownership_dept: Optional[int] = Field(default=None, description='业务认责部门')
data_std_it_ownership_dept: Optional[int] = Field(default=None, description='技术认责部门')
data_std_busi_ownership_dept: Optional[str] = Field(default=None, description='业务认责部门')
data_std_it_ownership_dept: Optional[str] = Field(default=None, description='技术认责部门')
buss_user: Optional[str] = Field(default=None, description='业务认责人员')
tech_user: Optional[str] = Field(default=None, description='技术认责人员')
belt_data_std_content: Optional[int] = Field(default=None, description='分类')

8
vue-fastapi-backend/module_admin/service/datastd_service.py

@ -557,9 +557,9 @@ class DataStdService:
codemodel.class_id=page_object.class_id
codemodel.parent_id=page_object.parent_id
codemodel.cd_type=page_object.cd_type
data_dict_type = await DataStdDao.get_data_code_by_info(query_db, codemodel
data_dict_data_type = await DataStdDao.get_data_code_by_info(query_db, codemodel
)
if data_dict_type and data_dict_type.onum != id:
if data_dict_data_type and data_dict_data_type.onum != id:
return CommonConstant.NOT_UNIQUE
return CommonConstant.UNIQUE
# ----------------------------------------------------------------数据字典----------------------------------------------------------------------------------------------------
@ -702,9 +702,9 @@ class DataStdService:
codemodel=DataStdDictModel()
codemodel.data_dict_no=page_object.data_dict_no
data_dict_type = await DataStdDao.get_data_dict_by_info(query_db, codemodel
data_dict_data_type = await DataStdDao.get_data_dict_by_info(query_db, codemodel
)
if data_dict_type and data_dict_type.onum != id:
if data_dict_data_type and data_dict_data_type.onum != id:
return CommonConstant.NOT_UNIQUE
return CommonConstant.UNIQUE
# ----------------------------------------------------------------数据标准分类----------------------------------------------------------------------------------------------------

16
vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue

@ -9,8 +9,8 @@
<el-form-item label="标准中文名" prop="stdName">
<el-input v-model="formData.stdName" placeholder="请输入标准中文名" clearable />
</el-form-item>
<el-form-item label="标准英文名" prop="stdCode">
<el-input v-model="formData.stdCode" placeholder="请输入标准英文名" clearable />
<el-form-item label="标准英文名" prop="dataStdNo">
<el-input v-model="formData.dataStdNo" placeholder="请输入标准英文名" clearable />
</el-form-item>
<el-form-item label="标准业务定义" prop="stdMenu">
<el-input v-model="formData.stdMenu" placeholder="请输入标准业务定义" clearable />
@ -88,8 +88,8 @@
placeholder="请选择业务认责部门"
check-strictly />
</el-form-item>
<el-form-item label="业务认责人员" prop="bussUser">
<el-select v-model="formData.bussUser" placeholder="请选择业务认责人员">
<el-form-item label="业务认责人员" prop="dataStdBusiOwnershipPrsn">
<el-select v-model="formData.dataStdBusiOwnershipPrsn" placeholder="请选择业务认责人员">
<el-option
v-for="dict in userList"
:key="dict.id"
@ -107,8 +107,8 @@
placeholder="请选择技术认责部门"
check-strictly />
</el-form-item>
<el-form-item label="技术认责人员" prop="techUser">
<el-select v-model="formData.techUser" placeholder="技术认责人员">
<el-form-item label="技术认责人员" prop="dataStdItOwnershipPrsn">
<el-select v-model="formData.dataStdItOwnershipPrsn" placeholder="技术认责人员">
<el-option
v-for="dict in userList"
:key="dict.id"
@ -183,8 +183,8 @@ const formRules = ref({
dataClas: [{ required: true, message: '请选择数据类别', trigger: 'change' }],
bussDeptId: [{ required: true, message: '请选择业务认责部门', trigger: 'blur' }],
techDeptId: [{ required: true, message: '请选择技术认责部门', trigger: 'blur' }],
bussUser: [{ required: true, message: '请输入业务认责人', trigger: 'blur' }],
techUser: [{ required: true, message: '请输入技术认责人', trigger: 'blur' }],
dataStdBusiOwnershipPrsn: [{ required: true, message: '请输入业务认责人', trigger: 'blur' }],
dataStdItOwnershipPrsn: [{ required: true, message: '请输入技术认责人', trigger: 'blur' }],
});
const codeCancel = () => {
codeVisible.value = false;

14
vue-fastapi-frontend/src/views/datastd/main/index.vue

@ -236,7 +236,7 @@
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="标准编号" prop="stdNum" width="150"></el-table-column>
<el-table-column label="标准英文名" prop="stdCode" width="150"></el-table-column>
<el-table-column label="标准英文名" prop="dataStdNo" width="150"></el-table-column>
<el-table-column label="标准中文名" prop="stdName" width="150"></el-table-column>
<el-table-column label="标准业务定义" prop="stdMenu" width="150"></el-table-column>
<el-table-column label="类型" prop="stdType" width="150">
@ -264,9 +264,9 @@
<el-table-column label="业务认责部门" prop="bussDeptId" width="150"></el-table-column>
<el-table-column label="业务认责部门" prop="bussDeptId" width="150"></el-table-column>
<el-table-column label="业务认责部门" prop="bussDeptId" width="150"></el-table-column>
<el-table-column label="业务认责人员" prop="bussUser" width="150"></el-table-column>
<el-table-column label="业务认责人员" prop="dataStdBusiOwnershipPrsn" width="150"></el-table-column>
<el-table-column label="技术认责部门" prop="techDeptId" width="150"></el-table-column>
<el-table-column label="技术认责人员" prop="techUser" width="150"></el-table-column>
<el-table-column label="技术认责人员" prop="dataStdItOwnershipPrsn" width="150"></el-table-column>
<!-- <el-table-column label="分类" prop="contentOnum" width="150"></el-table-column> -->
<el-table-column label="更新时间" prop="updateTime" width="180"></el-table-column>
<el-table-column label="操作" align="center" width="180">
@ -509,15 +509,15 @@ const handleAdd = () => {
selectedRow.value = {
stdType: "",
stdNum: "",
stdCode: "",
dataStdNo: "",
stdName: "",
stdMenu: "",
dataType: "",
stdCode: "",
dataStdNo: "",
bussDeptId: "",
bussUser: "",
dataStdBusiOwnershipPrsn: "",
techDeptId: "",
techUser: "",
dataStdItOwnershipPrsn: "",
securityLevel:"",
sourceSystem:""
};

8
vue-fastapi-frontend/src/views/datastd/stdcode/codeStdMap.vue

@ -15,11 +15,11 @@
<el-table-column label="代码编号" align="center" prop="cdNo" />
<el-table-column label="代码名称" align="center" prop="cdValCnMean" />
<el-table-column label="引用标准编号" align="center" prop="stdNum" />
<el-table-column label="引用标准英文名" align="center" prop="stdCode" />
<el-table-column label="引用标准英文名" align="center" prop="dataStdNo" />
<el-table-column label="引用标准中文名" align="center" prop="stdName" />
<el-table-column label="引用字典编号" align="center" prop="dictNum" />
<el-table-column label="引用字典英文名" align="center" prop="dictCode" />
<el-table-column label="引用字典中文名" align="center" prop="dictName" />
<el-table-column label="引用字典编号" align="center" prop="dataDictNo" />
<el-table-column label="引用字典英文名" align="center" prop="dataDictEngName" />
<el-table-column label="引用字典中文名" align="center" prop="dataDictCnName" />
</el-table>
</el-tab-pane>
</el-tabs>

77
vue-fastapi-frontend/src/views/datastd/stddict/AddEditForm.vue

@ -18,7 +18,7 @@
</el-form-item>
<el-form-item label="来源系统" prop="sysId" v-show="showSys">
<el-select
v-model="formData.sysId"
v-model="formData.srcSys"
placeholder="请选择来源系统"
maxlength="30"
@change="dataChange"
@ -37,69 +37,32 @@
<el-option label="指标数据" value="1" />
</el-select>
</el-form-item>
<el-form-item label="数据字典编号" prop="dictNum">
<el-input v-model="formData.dictNum" :disabled=isEdit placeholder="请输入数据字典编号" clearable />
<el-form-item label="数据字典编号" prop="dataDictNo">
<el-input v-model="formData.dataDictNo" :disabled=isEdit placeholder="请输入数据字典编号" clearable />
</el-form-item>
<el-form-item label="字典英文名" prop="dictCode">
<el-input v-model="formData.dictCode" placeholder="请输入字典英文名" clearable />
<el-form-item label="字典英文名" prop="dataDictEngName">
<el-input v-model="formData.dataDictEngName" placeholder="请输入字典英文名" clearable />
</el-form-item>
<el-form-item label="字典中文名" prop="dictName">
<el-input v-model="formData.dictName" placeholder="请输入字典中文名" clearable />
<el-form-item label="字典中文名" prop="dataDictCnName">
<el-input v-model="formData.dataDictCnName" placeholder="请输入字典中文名" clearable />
</el-form-item>
<el-form-item label="字典业务定义" prop="dictMenu">
<el-input v-model="formData.dictMenu" placeholder="请输入业务定义" clearable />
<el-form-item label="字典业务定义" prop="dataDictBusiMean">
<el-input v-model="formData.dataDictBusiMean" placeholder="请输入业务定义" clearable />
</el-form-item>
<el-form-item label="数据类型" prop="dataType">
<el-input v-model="formData.dataType" placeholder="请输入数据类型" clearable />
<el-form-item label="数据类型" prop="dataDictDataType">
<el-input v-model="formData.dataDictDataType" placeholder="请输入数据类型" clearable />
</el-form-item>
<el-form-item label="数据标准" prop="stdCode">
<el-select v-model="formData.stdCode" placeholder="数据标准">
<el-form-item label="数据标准" prop="dataStdNo">
<el-select v-model="formData.dataStdNo" placeholder="数据标准">
<el-option
v-for="dict in stdList"
:key="dict.id"
:label="dict.stdNum+'-'+dict.stdCode"
:label="dict.stdNum+'-'+dict.dataStdNo"
:value="dict.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="业务认责部门" prop="bussDeptId">
<el-tree-select
v-model="formData.bussDeptId"
:data="deptOptions"
:props="{ value: 'id', label: 'label', children: 'children' }"
value-key="id"
placeholder="请选择业务认责部门"
check-strictly />
</el-form-item>
<el-form-item label="业务认责人员" prop="bussUser">
<el-select v-model="formData.bussUser" placeholder="请选择业务认责人员">
<el-option
v-for="dict in userList"
:key="dict.id"
:label="dict.userName"
:value="dict.userName"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="技术认责部门" prop="techDeptId">
<el-tree-select
v-model="formData.techDeptId"
:data="deptOptions"
:props="{ value: 'id', label: 'label', children: 'children' }"
value-key="id"
placeholder="请选择技术认责部门"
check-strictly />
</el-form-item>
<el-form-item label="技术认责人员" prop="techUser">
<el-select v-model="formData.techUser" placeholder="技术认责人员">
<el-option
v-for="dict in userList"
:key="dict.id"
:label="dict.userName"
:value="dict.userName"
></el-option>
</el-select>
</el-form-item>
<!-- 底部按钮区域 -->
<el-row justify="center" style="margin-top: 20px;">
@ -148,9 +111,9 @@ const formRules = ref({
dictType: [{ required: true, message: '请选择数据字典类型', trigger: 'blur' }],
bussDeptId: [{ required: true, message: '请选择业务认责部门', trigger: 'blur' }],
techDeptId: [{ required: true, message: '请选择技术认责部门', trigger: 'blur' }],
dictNum: [{ required: true, message: '请输入数据字典编号', trigger: 'blur' }],
bussUser: [{ required: true, message: '请输入业务认责人', trigger: 'blur' }],
techUser: [{ required: true, message: '请输入技术认责人', trigger: 'blur' }],
dataDictNo: [{ required: true, message: '请输入数据字典编号', trigger: 'blur' }],
dataStdBusiOwnershipPrsn: [{ required: true, message: '请输入业务认责人', trigger: 'blur' }],
dataStdItOwnershipPrsn: [{ required: true, message: '请输入技术认责人', trigger: 'blur' }],
});
const showSys = ref(false);
const emit = defineEmits(['update:visible', 'refresh']);
@ -193,11 +156,11 @@ function changeCodeType(data) {
if (data != "company") {
showSys.value = true;
formData.value.sysName = "";
formData.value.sysId = undefined;
formData.value.srcSys = undefined;
} else {
showSys.value = false;
formData.value.sysName = "公司级";
formData.value.sysId = 10000;
formData.value.srcSys = 10000;
}
}
getDeptTree();

92
vue-fastapi-frontend/src/views/datastd/stddict/index.vue

@ -34,9 +34,9 @@
<el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryRef" :inline="true">
<el-form-item label="字典编号" prop="dictNum">
<el-form-item label="字典编号" prop="dataDictNo">
<el-input
v-model="queryParams.dictNum"
v-model="queryParams.dataDictNo"
placeholder="请输入标准字典编号"
clearable
style="width: 220px"
@ -93,12 +93,14 @@
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="归属" align="center" width="200">
<template #default="{ row }">
<template #default="scope">
<span v-if="scope.row.dataDictVest === 'company'">公司级</span>
<span v-else-if="scope.row.dataDictVest === 'sys'">
{{
row.dataDictVest === "company"
? "公司级"
: "系统级(" + row.sysName + ")"
getSrcSysName(scope.row.srcSys)
}}
</span>
</template>
</el-table-column>
<el-table-column label="类型" align="center">
@ -111,44 +113,44 @@
label="字典编号"
width="150"
align="center"
prop="dictNum"
prop="dataDictNo"
/>
<el-table-column
label="字典英文名"
width="120"
align="center"
prop="dictCode"
prop="dataDictEngName"
/>
<el-table-column
label="字典中文名"
width="120"
align="center"
prop="dictName"
prop="dataDictCnName"
/>
<el-table-column
label="字典业务定义"
width="120"
align="center"
prop="dictMenu"
prop="dataDictBusiMean"
/>
<el-table-column label="数据类型" align="center" prop="dataType" />
<el-table-column label="数据标准" align="center" prop="stdCode" >
<el-table-column label="数据类型" align="center" prop="dataDictDataType" />
<el-table-column label="数据标准" align="center" prop="dataStdNo" >
<template #default="{ row }">
<el-link
type="primary"
:underline="true"
@click="handleStdClick(row.stdCode)"
@click="handleStdClick(row.dataStdNo)"
style="cursor: pointer"
>
<span >{{transIdtoCode(row.stdCode)}}</span>
<span >{{transIdtoCode(row.dataStdNo)}}</span>
</el-link>
</template>
</el-table-column>
<el-table-column label="字典状态" align="center" prop="dictStatus">
<el-table-column label="字典状态" align="center" prop="dataDictStat">
<template #default="scope">
<dict-tag
:options="std_code_appr"
:value="scope.row.dictStatus"
:value="scope.row.dataDictStat"
/>
</template>
</el-table-column>
@ -156,37 +158,37 @@
label="业务认责部门"
width="120"
align="center"
prop="bussDeptName"
prop="dataStdBusiOwnershipDept"
/>
<el-table-column
label="业务认责人员"
width="120"
align="center"
prop="bussUser"
prop="dataStdBusiOwnershipPrsn"
/>
<el-table-column
label="技术认责部门"
width="120"
align="center"
prop="techDeptName"
prop="dataStdItOwnershipPrsn"
/>
<el-table-column
label="技术认责人员"
width="120"
align="center"
prop="techUser"
prop="dataStdItOwnershipPrsn"
/>
<el-table-column
label="更新者"
width="120"
align="center"
prop="updateBy"
prop="updPrsn"
/>
<el-table-column
label="更新时间"
width="120"
align="center"
prop="updateTime"
prop="updTime"
/>
<el-table-column label="操作" align="center" width="180">
<template #default="scope">
@ -254,8 +256,8 @@ const { std_code_status, std_code_appr } = proxy.useDict(
);
const queryParams = ref({
dictNum: "",
dictName: "",
dataDictNo: "",
dataDictCnName: "",
dictType: "",
sysName: "",
classId: "dict",
@ -281,7 +283,10 @@ const loading = ref(false);
const stdVisible = ref(false);
const ids = ref([]);
const cdNos = ref([]);
const getSrcSysName = (id) => {
const match = dbResourceOldList.value.find(item => item.id == id);
return match ? "系统级:"+ match.name : id;
};
const dbResourceOptions = ref([]);
const handleStdClick = (id) => {
getStdMain(id).then((response) => {
@ -295,8 +300,8 @@ const handlePagination = (pageNum, pageSize) => {
queryParams.value.pageSize = pageSize;
handleQuery();
};
const transIdtoCode = (stdCode) => {
const match = stdList.value.find(item => item.id === stdCode);
const transIdtoCode = (dataStdNo) => {
const match = stdList.value.find(item => item.onum === dataStdNo);
return match ? match.stdNum : '';
};
const filterNode = (value, data) => {
@ -305,15 +310,16 @@ const filterNode = (value, data) => {
};
const handleNodeClick = (data) => {
queryParams.value.sysId = data.id === 9999 ? undefined : data.id;
queryParams.value.srcSys = data.id === 99999||data.id === 10000 ? undefined : data.id;
queryParams.value.dataDictVest=data.id === 10000 ? "company":"sys"
handleQuery();
};
const handleSelectionChange = (selection) => {
single.value = selection.length !== 1;
multiple.value = !selection.length;
ids.value = selection.map((item) => item.id);
cdNos.value = selection.map((item) => item.dictNum);
ids.value = selection.map((item) => item.onum);
cdNos.value = selection.map((item) => item.dataDictNo);
};
const getList = async () => {
@ -336,8 +342,8 @@ const handleQuery = () => {
const resetQuery = () => {
queryParams.value = {
dictNum: "",
dictName: "",
dataDictNo: "",
dataDictCnName: "",
dictType: "",
sysName: "",
sysId: undefined,
@ -348,7 +354,7 @@ const resetQuery = () => {
};
const handleRemove = (row) => {
const idsToDelete = row.id ? [row.id] : ids.value;
const idsToDelete = row.onum ? [row.onum] : ids.value;
const codesToDelete = row.cdNo ? [row.cdNo] : cdNos.value;
proxy.$modal
.confirm(
@ -359,7 +365,7 @@ const handleRemove = (row) => {
})
.then(() => {
handleQuery();
proxy.$modal.msgSuccess("删除成功");
proxy.$modal.msgSuccess("提交删除审批成功");
})
.catch(() => {});
};
@ -373,16 +379,16 @@ const handleAdd = () => {
sysId: 10000,
sysName: "公司级",
dictType: "",
dictNum: "",
dictCode: "",
dictName: "",
dictMenu: "",
dataType: "",
stdCode: "",
dataDictNo: "",
dataDictEngName: "",
dataDictCnName: "",
dataDictBusiMean: "",
dataDictDataType: "",
dataStdNo: "",
bussDeptId: "",
bussUser: "",
dataStdBusiOwnershipPrsn: "",
techDeptId: "",
techUser: "",
dataStdItOwnershipPrsn: "",
};
//
@ -390,7 +396,7 @@ const handleAdd = () => {
};
const handleEdit = (row) => {
const id = row.id ? row.id : ids.value.toString();
const id = row.onum ? row.onum : ids.value.toString();
getStdDict(id).then((response) => {
selectedRow.value = response.data;
isEdit.value = true;

100
vue-fastapi-frontend/src/views/system/flow/dataStdDictAppr.vue

@ -25,15 +25,15 @@
</template>
</el-table-column>
<el-table-column label="字典编号" width="150" align="center" prop="dictNum" />
<el-table-column label="字典英文名" width="120" align="center" prop="dictCode" />
<el-table-column label="字典中文名" width="120" align="center" prop="dictName" />
<el-table-column label="字典业务定义" width="120" align="center" prop="dictMenu" />
<el-table-column label="数据类型" align="center" prop="dataType" />
<el-table-column label="字典编号" width="150" align="center" prop="dataDictNo" />
<el-table-column label="字典英文名" width="120" align="center" prop="dataDictEngName" />
<el-table-column label="字典中文名" width="120" align="center" prop="dataDictCnName" />
<el-table-column label="字典业务定义" width="120" align="center" prop="dataDictBusiMean" />
<el-table-column label="数据类型" align="center" prop="dataDictDataType" />
<el-table-column label="数据标准" align="center" prop="stdCode">
<el-table-column label="数据标准" align="center" prop="dataStdNo">
<template #default="{ row }">
<span>{{ transIdtoCode(row.stdCode) }}</span>
<span>{{ transIdtoCode(row.dataStdNo) }}</span>
</template>
</el-table-column>
@ -52,7 +52,7 @@
<!-- 查看 操作列固定右侧 -->
<el-table-column fixed="right" label="操作" width="100" align="center">
<template #default="{ row }">
<el-button text type="primary" @click="handleView(row.id)">
<el-button text type="primary" @click="handleView(row.onum)">
查看
</el-button>
</template>
@ -111,38 +111,38 @@
<!-- 第二行3 -->
<el-row gutter="20">
<el-col :span="6">
<el-form-item prop="dictNum">
<el-form-item prop="dataDictNo">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.dictNum) }">
<span :class="{ 'changed-label': isChanged(formData.dataDictNo) }">
数据字典编号
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.dictNum) }">
{{ formatValue(formData.dictNum) }}
<span :class="{ 'changed-value': isChanged(formData.dataDictNo) }">
{{ formatValue(formData.dataDictNo) }}
</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="dictCode">
<el-form-item prop="dataDictEngName">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.dictCode) }">
<span :class="{ 'changed-label': isChanged(formData.dataDictEngName) }">
字典英文名
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.dictCode) }">
{{ formatValue(formData.dictCode) }}
<span :class="{ 'changed-value': isChanged(formData.dataDictEngName) }">
{{ formatValue(formData.dataDictEngName) }}
</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="dictName">
<el-form-item prop="dataDictCnName">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.dictName) }">
<span :class="{ 'changed-label': isChanged(formData.dataDictCnName) }">
字典中文名
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.dictName) }">
{{ formatValue(formData.dictName) }}
<span :class="{ 'changed-value': isChanged(formData.dataDictCnName) }">
{{ formatValue(formData.dataDictCnName) }}
</span>
</el-form-item>
</el-col>
@ -151,38 +151,38 @@
<!-- 第三行4 -->
<el-row gutter="20">
<el-col :span="6">
<el-form-item prop="dictMenu">
<el-form-item prop="dataDictBusiMean">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.dictMenu) }">
<span :class="{ 'changed-label': isChanged(formData.dataDictBusiMean) }">
字典业务定义
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.dictMenu) }">
{{ formatValue(formData.dictMenu) }}
<span :class="{ 'changed-value': isChanged(formData.dataDictBusiMean) }">
{{ formatValue(formData.dataDictBusiMean) }}
</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="dataType">
<el-form-item prop="dataDictDataType">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.dataType) }">
<span :class="{ 'changed-label': isChanged(formData.dataDictDataType) }">
数据类型
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.dataType) }">
{{ formatValue(formData.dataType) }}
<span :class="{ 'changed-value': isChanged(formData.dataDictDataType) }">
{{ formatValue(formData.dataDictDataType) }}
</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="stdCode">
<el-form-item prop="dataStdNo">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.stdCode) }">
<span :class="{ 'changed-label': isChanged(formData.dataStdNo) }">
数据标准
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.stdCode) }">
{{ formatValue(transIdtoCode(formData.stdCode)) }}
<span :class="{ 'changed-value': isChanged(formData.dataStdNo) }">
{{ formatValue(transIdtoCode(formData.dataStdNo)) }}
</span>
</el-form-item>
</el-col>
@ -192,26 +192,26 @@
<!-- 第四行2 -->
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="bussDeptName">
<el-form-item prop="dataStdBusiOwnershipDept">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.bussDeptName) }">
<span :class="{ 'changed-label': isChanged(formData.dataStdBusiOwnershipDept) }">
业务认责部门
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.bussDeptName) }">
{{ formatValue(formData.bussDeptName) }}
<span :class="{ 'changed-value': isChanged(formData.dataStdBusiOwnershipDept) }">
{{ formatValue(formData.dataStdBusiOwnershipDept) }}
</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="bussUser">
<el-form-item prop="dataStdBusiOwnershipPrsn">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.bussUser) }">
<span :class="{ 'changed-label': isChanged(formData.dataStdBusiOwnershipPrsn) }">
业务认责人员
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.bussUser) }">
{{ formatValue(formData.bussUser) }}
<span :class="{ 'changed-value': isChanged(formData.dataStdBusiOwnershipPrsn) }">
{{ formatValue(formData.dataStdBusiOwnershipPrsn) }}
</span>
</el-form-item>
</el-col>
@ -220,26 +220,26 @@
<!-- 第五行2 -->
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="techDeptName">
<el-form-item prop="dataStdItOwnershipPrsn">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.techDeptName) }">
<span :class="{ 'changed-label': isChanged(formData.dataStdItOwnershipPrsn) }">
技术认责部门
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.techDeptName) }">
{{ formatValue(formData.techDeptName) }}
<span :class="{ 'changed-value': isChanged(formData.dataStdItOwnershipPrsn) }">
{{ formatValue(formData.dataStdItOwnershipPrsn) }}
</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="techUser">
<el-form-item prop="dataStdItOwnershipPrsn">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.techUser) }">
<span :class="{ 'changed-label': isChanged(formData.dataStdItOwnershipPrsn) }">
技术认责人员
</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.techUser) }">
{{ formatValue(formData.techUser) }}
<span :class="{ 'changed-value': isChanged(formData.dataStdItOwnershipPrsn) }">
{{ formatValue(formData.dataStdItOwnershipPrsn) }}
</span>
</el-form-item>
</el-col>
@ -299,8 +299,8 @@ const formatValue = (val) => {
}
const loading = ref(false);
const tableData = ref([]);
const transIdtoCode = (stdCode) => {
const match = stdList.value.find(item => item.id === stdCode);
const transIdtoCode = (dataStdNo) => {
const match = stdList.value.find(item => item.onum === dataStdNo);
return match ? match.stdNum : '';
};
const changeTypeMap = {

20
vue-fastapi-frontend/src/views/system/flow/dataStdMainAppr.vue

@ -8,7 +8,7 @@
>
<el-table-column prop="stdNum" label="标准编号" align="center" />
<el-table-column prop="stdCode" label="英文名" align="center" />
<el-table-column prop="dataStdNo" label="英文名" align="center" />
<el-table-column prop="stdName" label="中文名" align="center" />
<el-table-column label="类型" prop="stdType" width="150">
<template #default="scope">
@ -58,11 +58,11 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="stdCode">
<el-form-item prop="dataStdNo">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.stdCode) }">标准英文名</span>
<span :class="{ 'changed-label': isChanged(formData.dataStdNo) }">标准英文名</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.stdCode) }">{{ formatValue(formData.stdCode) }}</span>
<span :class="{ 'changed-value': isChanged(formData.dataStdNo) }">{{ formatValue(formData.dataStdNo) }}</span>
</el-form-item>
</el-col>
</el-row>
@ -142,11 +142,11 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="bussUser">
<el-form-item prop="dataStdBusiOwnershipPrsn">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.bussUser) }">业务认责人员</span>
<span :class="{ 'changed-label': isChanged(formData.dataStdBusiOwnershipPrsn) }">业务认责人员</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.bussUser) }">{{ formatValue(formData.bussUser) }}</span>
<span :class="{ 'changed-value': isChanged(formData.dataStdBusiOwnershipPrsn) }">{{ formatValue(formData.dataStdBusiOwnershipPrsn) }}</span>
</el-form-item>
</el-col>
</el-row>
@ -162,11 +162,11 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="techUser">
<el-form-item prop="dataStdItOwnershipPrsn">
<template #label>
<span :class="{ 'changed-label': isChanged(formData.techUser) }">技术认责人员</span>
<span :class="{ 'changed-label': isChanged(formData.dataStdItOwnershipPrsn) }">技术认责人员</span>
</template>
<span :class="{ 'changed-value': isChanged(formData.techUser) }">{{ formatValue(formData.techUser) }}</span>
<span :class="{ 'changed-value': isChanged(formData.dataStdItOwnershipPrsn) }">{{ formatValue(formData.dataStdItOwnershipPrsn) }}</span>
</el-form-item>
</el-col>
</el-row>

Loading…
Cancel
Save